Я хочу использовать Javascript для округления числа. Поскольку число является валютой, я хочу, чтобы оно округлялось, как в следующих примерах (2 десятичных знака):
- 192,168 => 192,20
- 192,11 => 192,20
- 192,21 => 192,30
- 192,26 => 192,30
- 192,20 => 192,20
Как этого добиться с помощью Javascript? Встроенная функция Javascript округляет число на основе стандартной логики (меньше и больше, чем 5, чтобы округлить).
javascript
rounding
cyberfly
источник
источник
ceil()
передадим вам193
, поэтому мы должны убедиться, что вся точность, которую мы хотим сохранить, должна быть выше десятичной точки. Затем мы выполняем обратную операцию, чтобы восстановить «исходное» значение.192.19999999999997
.toFixed(1)
num
Немного поздно, но, может создать повторно используемую функцию javascript для этой цели:
Вызовите функцию как
источник
Обычное округление будет работать с небольшой настройкой:
и если вы хотите сохранить формат валюты, вы можете использовать метод Number
.toFixed()
Хотя это сделает это String =)
источник
price.toFixed(2)
Очень близко к ответу TheEye , но я изменил кое-что, чтобы оно заработало:
источник
ОП ожидает две вещи:
A. округлить до десятых и
Б. показать ноль на сотом месте (типичная потребность в валюте).
Выполнение обоих требований, по-видимому, требует отдельного метода для каждого из вышеперечисленных. Вот подход, основанный на предложенном Сурьякираном ответе:
Важное примечание: это решение дает совершенно другой результат с отрицательными и экспоненциальными числами.
Для сравнения между этим ответом и двумя, которые очень похожи, см. Следующие 2 подхода. Первый просто округляется до ближайшей сотой в обычном порядке, а второй просто округляется до ближайшей сотой (большей).
источник
Хорошо, на этот вопрос уже получен ответ, но я подумал, что вам может понравиться мой ответ, который вызывает функцию math.pow () один раз. Я думаю, мне нравится хранить вещи СУХОЙ.
Это как бы складывает все вместе. Замените Math.round () на Math.ceil () для округления вместо округления, чего и хотел ОП.
источник
эта функция ограничивает десятичное число без круглого числа
источник
Я давно использую ответ @AndrewMarshall, но обнаружил некоторые крайние случаи. Следующие тесты не проходят:
Вот что я сейчас использую для правильного поведения:
Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
источник
roundUp(37.760000000000005, 4)
должно быть37.7601
иroundUp(5.83333333, 4)
должно быть5.8334
. Эти два (и ваш первый) все верны для предоставленного мною fn.parseInt всегда округляет су .....
do parseInt () + 1
источник