lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]




On Wed, Oct 9, 2019 at 6:02 AM Roberto Ierusalimschy <roberto@inf.puc-rio.br> wrote:
> Is there any way to enforce integer arithmetic in Lua 5.3
>
> e.g.
>
> x = 5 / 2 -- => 2
> where x is an integer?

1) Do not use '/' or '^'.

2) For any value that enters the computation that you cannot be sure
it is an integer, apply a conversion to it. How to convert depends
on you:

- x | 0   -- fast, raises an error if x is not an integer value

- math.tointeger(x)      -- returns falsy if x is not an integer value

- math.floor, math.ceil, math.modf
     -- rounds x (but the result may not be in the proper range)


-- Roberto

For my edification:  The answer is then "No, there is no way 'in general' to perform integer math"? It seems to me that all the suggestions above are value conversions/coercion and have nothing to do with actually performing the integer math equation requested by the OP?