Пытаясь посчитать сумму чисел заметил следующее поведение:
0.7 + 0.2 + 0.1 = 0.99999999...
Почему так происходит понятно из этого ответа.
Что с этим делать, если нужно чтобы ответ получался правильным?
В данном случае: 0.7 + 0.2 + 0.1 = 1
Какие есть решения данной проблемы?
Ошибку вычисления избежать трудно (много танцев с числами).
Лучше будет округлять после вычисления. причем можно округлять до целых если мы хотим видеть только целое число.
Math.round
Но если мы ожидаем увидеть дробное число этот метод не подойдет нужно использовать округление до до разумного знака после запятой. Округления до 10-го знака обычно бывает достаточно, чтобы отсечь ошибку вычислений и при этом получить нужную точность вычислений:
(0.1 + 0.2).toFixed(10)
но тут мы получаем тип string нужно доработать с помощью
parseFloat
Резюмируя округление можно делать так:
parseFloat((0.1 + 0.2+0.7).toFixed(10));
Все числа умножить на 10, округлить и просуммировать. Затем результат разделить на 10:
(Math.round(n1*10) + Math.round(n2*10) + ... + Math.round(nn*10)) / 10
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем приветСразу хочу сообщить-оправдаться, что только начинаю разбираться в веб-разработке
Добрый день! У меня есть массив который загружается с базы данныхЕсли после загрузки массива отобразить его в консоль, то он без проблем отобразится
В данном примере все работает хорошо, но строится новая картаНужно чтобы пункты выводились на одной карте, а не создавалась новая