@IvanVvV

Почему toFixed так округляет?

0.755.toFixed(2); // результат 0.76
0.7555.toFixed(3); // результат 0.755
0.75555.toFixed(4); // результат 0.7556
0.755555.toFixed(5); // результат 0.75555
0.7555555.toFixed(6); // результат 0.755556
0.75555555.toFixed(7); // результат 0.7555555

Почему так происходит, ведь в данных примерах на конце всегда должна быть цифра 6.?
  • Вопрос задан
  • 565 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
https://learn.javascript.ru/number#%D0%BD%D0%B5%D1...
Потому что эти числа не представимы точно в формате double (см. IEEE 754)

> 0.755.toFixed(20)
'0.75500000000000000444'
> 0.7555.toFixed(20)
'0.75549999999999994937'
> 0.75555.toFixed(20)
'0.75555000000000005489'


Т.е. когда вы пишете 0.755 на самом деле в компьютерном представлении это число чуть-чуть больше чем 0.755, а для 0.7555 наоборот чуть-чуть меньше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
было помоему
JS — как оставить только 2 знака(не округлить) после запятой?
соответсвенно сколько нужно оставить чисел после запятой на такой порядок умножать а потом делить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы