LUA Тригонометрические функции, возвращающие неожиданные значения
Недавно я немного повеселился со встроенной в математическую библиотеку Lua (версия 5.3.4), но обнаружил некоторые странные аномалии с функциями триггера (sin, cos, tan и т. Д.).
Более конкретно, ожидаемые результаты функций не совпадают с тем, что выдает интерпретатор Lua.
Например, синус пи радиан должен быть нулевым.
Но вместо этого переводчик дает мне следующее:
math.sin(math.pi) --outputs 1.2246467991474e-16
Теперь я знаю, что обозначение означает, что число равно 0,000000000000000012... которое невероятно близко к нулю (и может быть округлено с помощью math.floor), но почему Lua выводит приближения, а не истинное или принятое значение?
Является ли синус пи радиан на самом деле не нулем, а числом, действительно близким к нулю? Или это результат чего-то закулисного? Или я просто испортил синтаксис здесь?