Что выведет код 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 ошибок.

Термины по теме