Как округлить до 2 знаков после запятой, если необходимо
Я хотел бы округлить число до двух десятичных знаков, но только если это необходимо.
Входные данные:
10
1.7777777
9.1
Выходные данные:
10
1.78
9.1
Как я могу это реализовать на JavaScript?
5 ответ(ов)
Методы .toFixed() и .toPrecision() в JavaScript используются для форматирования чисел, но имеют разные цели и поведение.
.toFixed(digits): Этот метод форматирует число, возвращая строку, представляющую число с фиксированным количеством десятичных знаков. Аргументdigitsопределяет, сколько именно знаков после запятой будет в результате. Если количество значений меньше указанного, то.toFixed()дополнит число нулями до нужного количества.Например:
let num = 2.34567; console.log(num.toFixed(2)); // "2.35" console.log(num.toFixed(4)); // "2.3457".toPrecision(precision): Этот метод возвращает строку, представляющую число с заданной общей длиной (количеством значащих цифр), включая как целую часть, так и дробную. Если переданный параметр меньше, чем количество значащих цифр в числе, то результат будет округлен. Если параметр больше, чем количество значащих цифр, то число будет дополнено нулями.Например:
let num = 2.34567; console.log(num.toPrecision(3)); // "2.35" console.log(num.toPrecision(5)); // "2.3457"
Таким образом, используйте .toFixed(), когда вам нужно задать конкретное количество десятичных знаков, а .toPrecision(), когда важна общая длина числа.
Вот простой способ сделать это:
Math.round(value * 100) / 100
Тем не менее, вам может иметь смысл создать отдельную функцию для этой задачи:
function roundToTwo(value) {
return (Math.round(value * 100) / 100);
}
Теперь вы просто можете передать значение в эту функцию.
Вы также можете улучшить эту функцию, добавив второй параметр, чтобы округлять до произвольного количества знаков после запятой:
function myRound(value, places) {
var multiplier = Math.pow(10, places);
return (Math.round(value * multiplier) / multiplier);
}
Чтобы округлить число до двух десятичных знаков в JavaScript, вы можете использовать функцию Number(x).toFixed(2). Вот пример:
let x = 123.45678;
let rounded = Number(x).toFixed(2);
console.log(rounded); // Вывод: "123.46"
Функция toFixed(2) преобраз
Вы можете использовать метод .toFixed(NumberOfDecimalPlaces), чтобы преобразовать число в строку с фиксированным количеством знаков после запятой. Вот пример:
var str = 10.234.toFixed(2);
console.log(str); // Вывод: "10.23"
var number = Number(str);
console.log(number); // Вывод: 10.23
В этом примере число 10.234 форматируется с двумя знаками после запятой, что дает строку "10.23". Затем мы преобразуем эту строку обратно в число с помощью функции Number(). Обратите внимание, что при использовании .toFixed() вы получите строку, а не число, поэтому важно выполнить преобразование, если вам нужно использовать это значение как число в дальнейшем.
В данном коде происходит использование метода toFixed() для преобразования чисел в строки с определённым количеством знаков после запятой. Давайте разберём каждую строку.
+(10).toFixed(2); // = 10- Здесь сначала используется
toFixed(2), который возвращает строку"10.00"(с двумя знаками после запятой). Затем оператор+преобразует эту строку обратно в число, в результате чего получается значение10.
- Здесь сначала используется
+(10.12345).toFixed(2); // = 10.12- В этом случае
toFixed(2)возвращает строку"10.12", которая затем преобразуется в число с помощью оператора+, в результате получаем10.12.
- В этом случае
(10).toFixed(2); // = 10.00- Здесь
toFixed(2)возвращает строку"10.00". Результат остается строкой.
- Здесь
(10.12345).toFixed(2); // = 10.12- В этом примере
toFixed(2)снова возвращает строку"10.12", которая также остается строкой.
- В этом примере
Таким образом, основная отличие в том, что использование унарного плюса (+) заставляет JavaScript сначала преобразовать строку обратно в число, что не происходит в случае без оператора +.
Форматирование числа с точностью до двух знаков после запятой в JavaScript
Как округлить число до одного знака после запятой в JavaScript?
Где найти документацию по форматированию даты в JavaScript?
Как проверить, содержит ли массив строку в TypeScript?
Ссылка и выполнение внешнего JavaScript-файла, размещенного на GitHub