Хотя ссылка Тыдока на PiL 2.3 правильна и уместна, а Ответ Хавьера на практике верен, я думал, что обсуждение чисел в Lua следует округлить парой других деталей.
Интерпретатор Lua предназначен для встраивания в приложение, как правило, в качестве языка конфигурации и / или сценариев. При сборке для приложения обычно настраивают некоторые его функции в соответствии с требованиями.
Точный числовой тип для чисел доступен для конфигурации. При компиляции для платформы без аппаратной плавающей запятой, где загрузка сторонних модулей не важна (особенно во встроенной системе или приложении игровой консоли приставки), тогда разумно выбрать целочисленный тип вместо значения по умолчанию double
. Иногда разумно также перейти на float
.
Однако, есть приложения, где нужны 64-битные целые числа, или большинство чисел могут быть целыми числами, но иногда требуется арифметика с плавающей запятой. Для этих случаев есть ядро LNUM для ядра Lua.
LNUM изменяет ядро так, что числа хранятся в виде целых чисел или с плавающей запятой, и позволяет несколько настраиваемых выборов для точности каждого.
Таким образом, нижняя строка ответа на вопрос о максимальном значении числа Lua заключается в том, что это зависит от конфигурации интерпретатора, выбранного во время компиляции, и от того, беспокоитесь ли вы о представляемой максимальной величине или максимальном целом числе. И даже тогда была проделана работа, чтобы большие целые числа хорошо играли с представлениями с плавающей запятой.