Особенность интерпретатора Lua

Опубликовано в QLua

Наткнулся на неприятную особенность интерпретатора lua, встроенного в терминал QUIK.

Возьмем число 4503599627370496. В шестнадцатеричном представлении оно будет выглядеть как 0x10000000000000. Напишем простейший тест:

x=4503599627370496
y=0x10000000000000
print(x .. " " .. y)

Запустим. Результат выглядит так:

4.5035996273705e+015 4294967295

Вывод. Несмотря на то, что в обе переменные помещаем одно и то же число в разных системах счисления, содержимое этих переменных оказывается различным. Непорядок.

 

Комментарии   

# swerg 25.10.2015 08:55
Забавно, конечно, что вот это число
x=4503599627370496
интерпретируется строго как целое (отсюда и результат для 32-х битного Int)
Скажем прямо - неожиданно и неприятно, особенно учитывая, что в Lua нельзя явно задавать типы переменных.
Спасибо за пример
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Защитный код
Обновить

Архив QLua