Округление чисел до 2 знаков после запятой
Я понятия не имею, как это сделать? Я добавляю запятые, результат, конечно, всегда число с слишком большим количеством цифр после запятой. кто?
7 ответов
Изменить 2:
использовать Number
объекта toFixed
способ такой:
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roudedString); // toFixed() returns a string (often suitable for printing already)
он округляет 42.0054321 до 42.01
он округляет 0.005 до 0.01
он округляет -0.005 до -0.01 (таким образом, абсолютное значение увеличивается при округлении .Границы 5)
-
toFixed()
- метод преобразует число в строку, сохраняя заданное количество десятичных знаков. На самом деле он не округляет число, а усекает его. -
Math.round(n)
- округляет число до ближайшего целого числа. Так поворачиваясь:
0.5 -> 1; 0.05 -> 0
Итак, если вы хотите округлить, скажем, число 0,55555, только до второго десятичного знака; вы можете сделать следующее (Это пошаговая концепция):
-
0.55555 * 100
= 55.555 -
Math.Round(55.555)
- > 56.000 -
56.000 / 100
= 0.56000 -
(0.56000).toFixed(2)
-> 0.56
и этот код:
(Math.round(number * 100)/100).toFixed(2);
это сработало для меня:
var new_number = float.toFixed(2);
пример:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
предыдущие ответы забыли снова ввести вывод в виде числа. Есть несколько способов сделать это, в зависимости от ваших вкусов.
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
хотя у нас есть много ответов здесь с большим количеством полезных предложений, каждый из них все еще пропускает некоторые шаги.
Так вот полное решение, завернутое в небольшую функцию:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
на всякий случай, если вам интересно, как это работает:
- множественный с 100 и после этого сделайте круг для того чтобы держать Точность 2 чисел после запятой
- разделить обратно на 100 и использовать
toFixed(2)
сохранить 2 цифры после запятая и выбросить другие unuseful часть - преобразовать его обратно в float с помощью возвращает строку
Примечание: если вы сохраняете последние 2 цифры после запятой из-за работы с денежными значениями и ведение финансовых расчетов имейте в виду, что это не очень хорошая идея и вместо этого лучше использовать целочисленные значения.