Округление чисел до 2 знаков после запятой



Я понятия не имею, как это сделать? Я добавляю числа запятых, результат, конечно, всегда число со слишком большим количеством цифр после запятой. кто?

988   7  

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)

пример jsFiddle

  • 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))

Это не очень дружественный процессор, но:

Math.round(number*100)/100

работает, как ожидалось.

использовать ниже код.

alert(+(Math.round(number + "e+2")  + "e-2"));

хотя у нас есть много ответов здесь с большим количеством полезных предложений, каждый из них все еще пропускает некоторые шаги.
Так вот это полное решение, завернутое в небольшую функцию:

function roundToTwoDigitsAfterComma(floatNumber) {
    return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}

на всякий случай, если вам интересно, как это работает:

  1. многократная цепь с 100 и после этого делает кругом для того чтобы держать Точность 2 чисел после запятой
  2. разделить обратно на 100 и использовать toFixed(2) сохранить 2 цифры после запятая и бросьте другие бесполезные часть
  3. преобразуйте его обратно в float с помощью возвращает строку

Примечание: если вы сохраняете последние 2 цифры после запятой из-за работы с денежными значениями, и ведение финансовых расчетов имейте в виду, что это не очень хорошая идея и вам лучше использовать целочисленные значения вместо этого.

Comments

    Ничего не найдено.