Love2D: Работа с числами

Руководство по Lua 5.1

Внутреннее представление

Некоторые языки программирования по умолчанию поддерживают несколько числовых типов:
  • Целочисленные
  • Точные целочисленные
  • Числа с плавающей точкой
  • Числа с плавающей точкой двойной точности
  • Комплексные числа
В целях упрощения в Lua используется только один числовой тип: по умолчанию это числа с плавающей точкой двойной точности (double). Но Lua можно легко перекомпилировать под любой другой тип.
Главное, что следует помнить, при использование чисел с дробной частью могут возникать ошибки округления, т.к. место для их хранения ограничено. Также не стоит использовать оператор равенства (==) с числами с дробной частью (т.к. проверяется на абсолютное равенство).
Если ваши числа не имеют дробной части и не превышают 2^53, тогда не стоит беспокоится.

Использование чисел

Можно выводить числа и производить вычисления. Lua также понимает числа в экспонентной форме:
<значение> * 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
с возможными дополнениями и изменениями

Просмотров: 1 503

Комментарии пока отсутcтвуют