Как округлить число до 2 знаков js
Для округления десятичных чисел дофиксированного количества знаков после запятой в JS используется метод toFixed()
. В качестве параметра метод принимает количество знаков, до которого нужно округлить. Если в исходном числе будет меньше знаков, то недостающие знаки заменятся нулями.
Примеры:
const pi = 3.14159265359;
console.log(pi.toFixed(2)); // => 3.14
const num = 4;
console.log(num.toFixed(2)); // => 4.00
Хмм. Думаю тут есть неточность (или для js и так сойдет ?). В вопросе округление числа, но метод toFixed
возвращает строку, как быть в таком случае, typescript неоценит такое округление.
Для округления десятичных чисел до фиксированного количества знаков после запятой в JavaScript используется метод toFixed()
. В качестве параметра метод принимает количество знаков, до которого нужно округлить. Если в исходном числе будет меньше знаков, то недостающие знаки заменятся нулями.
Примеры:
const pi = 3.14159265359;
console.log(pi.toFixed(2)); // => 3.14
const num = 4;
console.log(num.toFixed(2)); // => 4.00
Спасибо за пример, у меня задача была получить два случайных числа в диапазоне и округлить до введёного знака после запятой
function getRandomInt(min, max, znakPosleZpt){ let q=Math.random() * (max - min) + min; return q.toFixed(znakPosleZpt) } console.log(getRandomInt(12,50,5))
const pi = 3.14159265359; console.log(typeof Number(pi.toFixed(2)); // => "number"
Я использовал Math.round, потому что с .toFixed далее по коду были проблемы. Полученное значение нельзя было добавить к общей сумме и собственно .toFixed ругался.
Вот такое число записывалось в переменную при totalKm = 12: 03.60. Видимо этот 0 впереди ломает работу .toFixed
Пример:
totalKm = 12;
Math.round(totalKm * 0.3 * 100) / 100;
Если использовать personalCarCosts = (totalKm * 0.3).toFixed(2); ниже по коду получал ошибку
totalCosts = totalMealsCost + totalTravelCosts + totalAccommodationCosts + totalAdditionalCosts + personalCarCosts;
$('#total_costs').val(totalCosts.toFixed(2));
Uncaught TypeError: totalCosts.toFixed is not a function
С Math.round проходит без проблем.