@avr1972

Зачем приводить к числу при округлении?

var result = 0.1 + 0.2;
alert( +result.toFixed(10) ); // 0.3


Подскажите пожалуйста, почему result надо приводить к числу? Вроде 0.1 и 0.2 и так числа
  • Вопрос задан
  • 67 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
К числу приводится не result, a то, что возвращает toFixed() (это строка).
Чтобы всё понять, достаточно выполнить вот такой код:
var result = 0.1 + 0.2;
alert(result.toFixed(10));
alert(+result.toFixed(10));
Ответ написан
Комментировать
Xuxicheta
@Xuxicheta
инженер
Потому что 0.1 + 0.2 будет 0.30000000000000004
Таков механизм работы с дробными числами.
+toFixed это такой кривой способ отбросить этот несущественный хвост через приведение к строке и назад.
С ним надо быть аккуратней, потому что
> (1e+21 / 100).toFixed(2)
'10000000000000000000.00'
> (1e+21 / 10).toFixed(2)
'100000000000000000000.00'
> (1e+21 / 1).toFixed(2)
'1e+21'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы