Внутреннее представление
Некоторые языки программирования по умолчанию поддерживают несколько числовых типов:
- Целочисленные
- Точные целочисленные
- Числа с плавающей точкой
- Числа с плавающей точкой двойной точности
- Комплексные числа
В целях упрощения в Lua используется только один числовой тип: по умолчанию это числа с плавающей точкой двойной точности (double). Но Lua можно легко перекомпилировать под любой другой тип.
Главное, что следует помнить, при использование чисел с дробной частью могут возникать ошибки округления, т.к. место для их хранения ограничено. Также не стоит использовать оператор равенства (==) с числами с дробной частью (т.к. проверяется на абсолютное равенство).
Главное, что следует помнить, при использование чисел с дробной частью могут возникать ошибки округления, т.к. место для их хранения ограничено. Также не стоит использовать оператор равенства (==) с числами с дробной частью (т.к. проверяется на абсолютное равенство).
Если ваши числа не имеют дробной части и не превышают 2^53, тогда не стоит беспокоится.
Использование чисел
Можно выводить числа и производить вычисления. Lua также понимает числа в экспонентной форме:
<значение> * 10 ^ <экспонент>
<значение> * 10 ^ <экспонент>
> = 1.2345e6
1234500
> = 543.21E8
54321000000
> = 2.56e-4
0.000256
Можно присваивать числа переменным:
> width = 7.5
> height = 12.7
> = width * height
95.25
> depth = 2.8
> area = width * height
> volume = area * depth
> print(area, volume)
95.25 266.7
В комплект стандартных библиотек Lua входит и математическая, предоставляющая следующие функции:
math.abs math.acos math.asin math.atan math.atan2
math.ceil math.cos math.cosh math.deg math.exp
math.floor math.fmod math.frexp math.ldexp math.log
math.log10 math.max math.min math.modf math.pow
math.rad math.random math.randomseed math.sin math.sinh
math.sqrt math.tan math.tanh
Парочка примеров:
> = math.sqrt(101)
10.049875621121
> = math.pi
3.1415926535898
> = math.sin( math.pi/3 )
0.86602540378444
данная статья является вольным переводом с сайта lua-users.org
с возможными дополнениями и изменениями
с возможными дополнениями и изменениями