Ошибку вычисления избежать трудно (много танцев с числами).
Лучше будет округлять после вычисления.
причем можно округлять до целых если мы хотим видеть только целое число.
Math.round
Но если мы ожидаем увидеть дробное число этот метод не подойдет нужно использовать округление до до разумного знака после запятой. Округления до 10-го знака обычно бывает достаточно, чтобы отсечь ошибку вычислений и при этом получить нужную точность вычислений:
(0.1 + 0.2).toFixed(10)
но тут мы получаем тип string нужно доработать с помощью
parseFloat
Резюмируя округление можно делать так:
parseFloat((0.1 + 0.2+0.7).toFixed(10));
.toFixed(число_знаков_после_запятой)– diralik Dec 24 '17 at 21:03decimals, что опять же, при вычислениях "на лету" - бесполезно – Алексей Шиманский Dec 24 '17 at 21:14каждое число представлял обычной дробью - там числитель и знаменатель целые- и как, получалось? А тоvar test = 2/10 + 1/10; console.log(test);выведет ответом0.30000000000000004..... аvar test = 7/10 + 2/10 + 1/10; console.log(test);соответственно всё также0.9999999999999999– Алексей Шиманский Dec 25 '17 at 06:38либо
Я собаку на этом съел.
– CuprumBur Dec 25 '17 at 09:31