Hi guys,

speaking as a Groovy user again (i.e. irrespective of how hard this would be to change/implement) and as someonewho has run into the same problem: This seems very Java & mighty un-groovy to me.

At least if the calculation is done in a single statement (but also for constant numerical values in general), I would expect one of two behaviors: Either

1. Throw a compilation error, saying that the result cannot be
   represented within the literal datatype given (with a hint that
   appending "L" or "G" might be what the user wants), or
2. Automatically use BigInteger as the result type.

Gauging whether the product of several integer literals fits within a 32-bit int is not something humans are typically good at, and a numerical overflow is basically always an error. During runtime overflow error detection is typically off, due to performance considerations, but this would not prohibit it during compile time...

Cheers,
mg


On 09/12/2019 18:00, Paul King wrote:
Meta note: This thread is related to the usage of Groovy and best belongs on the users mailing list where it will gain more eyeballs and also more likely to be found in the future by otherĀ users in the same scenario. The dev list is for aspects relating to the development of the language itself.

But to answer the current question, Integer literals aren't made BigInteger by default but if either side of a multiplication is a BigInteger, the answer will be BigInteger, so you get the correct answer in the posed problem with e.g.: 86400G*1000*30

Cheers, Paul.


On Tue, Dec 10, 2019 at 2:48 AM Angelo Schneider <angelo.schnei...@oomentor.de <mailto:angelo.schnei...@oomentor.de>> wrote:

    Would that not be handled by BigInteger?

    I assumed integer literals are treated as BigInter just like
    float/double literals are treated as BigDecimals.

    Greetings
    Angelo

    Am 09.12.2019 um 00:51 schrieb Edmond Kemokai <ekemo...@gmail.com
    <mailto:ekemo...@gmail.com>>:

    I'd read up on the MAX_VALUE doc but didn't see any mention of
    this behavior... Thanks guys!!



Reply via email to