Я создаю приложение в Angular и пытаюсь найти наиболее точный способ выполнения простых математических уравнений. В качестве простого примера возьмем сумму
0.1 + 0.2
Как большинство из нас знает, это не просто возвращает 0.3, а возвращает
0.30000000000000004
Однако в моем приложении я требую, чтобы результаты этих уравнений были очень точными, то есть мне нужно 0,3 в качестве результата. Распространенный способ исправить это - использовать функцию toFixed
:
(0.1 + 0.2).toFixed(2) = 0.30
Однако это не решит мою проблему. Допустим, мне нужно разделить 1 на 11, но в этом случае мне действительно нужны все десятичные значения:
1/11 = 0.09090909090909091
, тогда как toFixed(2)
на самом деле вернет только 0.09
, но для Для моего приложения мне нужна более высокая точность, т.е. приведенный выше результат.
Есть ли способ выполнить эти простые уравнения, в то же время получая точные результаты? т.е. 0.1 + 0.2 = 0.3
и 1/11 = 0.09090909090909091
.
РЕДАКТИРОВАТЬ
Вот еще один пример:
15.7 + 17.4 + 17.39 = 50.48999999999999
, тогда как ответ должен быть 50.49