I would say that the real issue is that the reference manual is underspecified. It says "A numeric constant with a fractional dot or an exponent denotes a float; otherwise it denotes an integer." No mention (as far as I can tell) is made about the cases when the literals are not representable. This, in principle, follows the C standard, which explicitly says that the behaviour of the ato* functions is undefined if the result is not representable. The question is, is that good for Lua?