lua-users home
lua-l archive

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


2018-07-06 17:55 GMT+02:00 Roberto Ierusalimschy <roberto@inf.puc-rio.br>:
>> The following three lines runs without errors in Lua 5.3.
>>
>> local foo = 13.37
>> local bar = foo // 1
>> type( bar <<  8 )
>>
>> The shift on the third line fails with Lua 5.4 with the following error:
>> "number (local 'bar') has no integer representation".
>>
>> It still fails with the error "attempt to perform bitwise operation on a nil
>> value (local 'bar')" when 'bar' is explicit converted to an integer.
>>
>> local foo = 13.37
>> local bar = math.tointeger( foo // 1 )
>> type( bar <<  8 )
>>
>> Is this a bug or did I use the wrong method?
>
> It is a (stupid) bug, but not in bit shift:
>
>> foo = 13.37
>> print(foo // 1)     --> 13.7

When is a bug not stupid?