Особенность интерпретатора Lua
Наткнулся на неприятную особенность интерпретатора lua, встроенного в терминал QUIK.
Возьмем число 4503599627370496. В шестнадцатеричном представлении оно будет выглядеть как 0x10000000000000. Напишем простейший тест:
x=4503599627370496
y=0x10000000000000
print(x .. " " .. y)
Запустим. Результат выглядит так:
4.5035996273705e+015 4294967295
Вывод. Несмотря на то, что в обе переменные помещаем одно и то же число в разных системах счисления, содержимое этих переменных оказывается различным. Непорядок.
x=4503599627370496
интерпретируется строго как целое (отсюда и результат для 32-х битного Int)
Скажем прямо - неожиданно и неприятно, особенно учитывая, что в Lua нельзя явно задавать типы переменных.
Спасибо за пример
RSS лента комментариев этой записи