Что выведет код Senior Типы и приведение обновлено
Деньги и округление
Вопрос
Что выведет код? По строке на каждый вывод.
console.log(1.005.toFixed(2));
console.log((1.005 * 100).toFixed(10));
console.log(Math.round(1.005 * 100) / 100);
console.log((10.1 * 3).toFixed(2));
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 1.00, 100.5000000000, 1, 30.30. Почему так toFixed округляет фактически хранимое значение, а оно чуть меньше 1.005 - отсюда «неправильное» округление.
Что выведет
1.00
100.5000000000
1
30.30
Разбор
Почему так
toFixed округляет фактически хранимое значение, а оно чуть меньше 1.005 - отсюда «неправильное» округление. Единственный надёжный способ для денег - целые копейки.
Вывод
1.00
100.5000000000
1
30.30
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.