lua-users home
lua-l archive

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


On Mon, Jan 12, 2015 at 2:04 PM, Michael Welsh Duggan <mwd@cert.org> wrote:
> Sean Conner <sean@conman.org> writes:
>
>> It was thus said that the Great Roberto Ierusalimschy once stated:
>>> > > I don't know about others but writing larger numbers in exponential
>>> > > format like 1e3 is common in my code. For Lua 5.3, those are always
>>> > > floats. This has interesting consequences:
>>> > >
>>> > > for i = 1, 1e3 do
>>> > >   print(i) --> always int
>>> > > end
>>> > >
>>> > > for i = 1e3, 1, -1 do
>>> > >   print(i) --> always float
>>> > > end
>>>
>>> Note that this corresponds to the usual arithmetic rules.
>>>
>>>
>>>
>>> > > This is probably not a big deal since I could use 10^2 instead.
>>> >
>>> > Oops, no I can't. Exponentiation always converts operands to float
>>> > too. I guess there's not a good shorthand for large integer constants?
>>>
>>> 1000? :-)
>>
>>   Easy for that case---no so easy for 2^48.
>
> 0x1000000000000
>
> --
> Michael Welsh Duggan
> (mwd@cert.org)
>

1 << 48.

We have bitops now. :P

/s/ Adam