Метод toFixed
Метод toFixed производит округление числа до указанного знака в дробной части. Количество знаков указывается параметром. Если число знаков не указано, то по умолчанию берется 0 знаков, то есть округление до целого числа.
Синтаксис
число.toFixed([количество знаков в дробной части]);
Пример
Пусть дана дробь. Давайте округлим ее до 3 знаков в дробной части:
let num = 1.1111; console.log(num.toFixed(3));
Результат выполнения кода:
Пример
В следующем примере также оставлено только 3 знака в дробной части, однако последняя цифра увеличилась на 1 , так как округление производится по правилам математики:
let num = 1.1119; console.log(num.toFixed(3));
Результат выполнения кода:
Пример
В следующем примере дробь округлится до целого числа, так как параметр метода пуст:
let num = 1.111; console.log(num.toFixed());
Результат выполнения кода:
Пример
В следующем примере параметр метода превышает количество знаков в дробной части исходной дроби, поэтому метод добавит две цифры 0 в конец нашей дроби:
let num = 1.1111; console.log(num.toFixed(6));
Результат выполнения кода:
Смотрите также
- методы Math.round , Math.ceil , Math.floor ,
которые также выполняют округление числа - метод toPrecision ,
который выполняет округление числа до определенного количества символов
Округление числа в JS
Округление чисел в JavaScript часто требуется при проведении математических операций: в калькуляторах, при просчете высоты/ширины блока и т.д.
В этом посте мы рассмотрим как округлить число в JS до целого и отбросить дробную часть, а также до 2 знаков после запятой.
Math.ceil() — округление в большую сторону
С помощью метода ceil() объекта Math мы можем округлить число в большую сторону. Останется только целая часть, без десятичной. Нам нужно передать только один параметр — число, которое мы хотим округлить:
console.log(Math.ceil(74.5)); // 75 console.log(Math.ceil(4.1)); // 5 console.log(Math.ceil(55.321)); // 56 console.log(Math.ceil(-55.321)); // -55 console.log(Math.ceil(-0.3)); // -0 console.log(Math.ceil(-7.3)); // -7
Обратите внимание на округление отрицательных чисел — -7.3 округляется до -7 , т.к. -7 больше чем -7.3 .
Math.floor() — округление в меньшую сторону
Для округления в меньшую сторону есть отдельный метод floor(). Он также округляет до целого числа. Рассмотрим на тех же примерах:
console.log(Math.floor(74.5)); // 74 console.log(Math.floor(4.1)); // 4 console.log(Math.floor(55.321)); // 55 console.log(Math.floor(-55.321)); // -56 console.log(Math.floor(-0.3)); // -1 console.log(Math.floor(-7.3)); // -8
Math.round() — округление до целого числа
Данный метод округляет число до ближайшего целого (отбрасывает дробную часть) по правилам математики. То есть, если десятичная часть числа >= .5 (больше или равно), тогда округление срабатывает в большую сторону. Если меньше — тогда в меньшую сторону
console.log(Math.round(64.5)); // 65 console.log(Math.round(64.4)); // 64 console.log(Math.round(14.21)); // 14 console.log(Math.round(34.49)); // 34 console.log(Math.round(34.51)); // 35 console.log(Math.round(-3.6)); // -4 console.log(Math.round(-3.4)); // -3
toFixed() JS — округление до заданного количества чисел после запятой
Этот метод уже работает отдельно от объекта Math и он позволяет нам указать сколько чисел нужно оставить после запятой (до десятых, сотых, тысячных и т.д.). По умолчанию, если не передать никакие параметры, округление будет до целого числа. Округление также будет происходить по математическим правилам.
Давайте рассмотрим примеры с округлением до 2 знаков после запятой, как наиболее часто используемый в финансовых расчетах:
const num1 = 64; const num2 = 64.4568; const num3 = 13.894; const num4 = -13.41568; console.log(num1.toFixed(2)); // 64.00 console.log(num2.toFixed(2)); // 64.46 console.log(num3.toFixed(2)); // 13.89 console.log(num4.toFixed(2)); // -13.42 const num5 = 55.5; const num6 = 55.4; console.log(num5.toFixed()); // 56 console.log(num6.toFixed()); // 55
Обратите внимание на такой момент. Если вы захотите присвоить значение после выполнения метода toFixed() другой переменной, это будет строка, а не число:
const num1 = 64.4568; const num2 = num1.toFixed(2); console.log(typeof num2, num2); // string "64.46"
Для того, чтобы получить число можно использовать такие варианты:
const num1 = 64.4568; const num2 = +num1.toFixed(2); console.log(typeof num2, num2); // number 64.46 const num3 = parseFloat(num1.toFixed(2)); console.log(typeof num3, num3); // number 64.46 const num4 = Number(num1.toFixed(2)); console.log(typeof num4, num4); // number 64.46
Ваши вопросы и комментарии:
Свежие записи
- MySQL IS NULL — проверка поля на NULL
- MySQL LIKE — поиск по паттерну
- Between MySQL — оператор для выборки по диапазону значений
- MySQL IN и NOT IN — несколько условий
- MySQL WHERE — синтаксис и примеры
Копирование материалов разрешено только с ссылкой на источник Web-Dev.guru
2023 © Все права защищены.
округление до сотых
Работает на ура с одинокими значениями, но у меня есть множество операций сложения и вычитания n количества значений, и бывает проскакивают значения типа 892.299999999 и тд. Вопрос в том , есть ли более универсальный вариант для округления
Отслеживать
задан 5 фев 2016 в 8:52
1,037 3 3 золотых знака 15 15 серебряных знаков 26 26 бронзовых знаков
это на самом деле не округление, а урезание.
5 фев 2016 в 9:24
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
var rounded = function(number) < return +number.toFixed(2); >console.log(rounded(29.49999)); //29.5 console.log(rounded(15.75621900432)); //15.76
Отслеживать
ответ дан 5 фев 2016 в 9:07
3,324 1 1 золотой знак 15 15 серебряных знаков 32 32 бронзовых знака
попробуйте 3186,4 отнять 987.12 и отнять 654.65, у меня выходит 1544.62(9)^в периоде
5 фев 2016 в 9:12
5 фев 2016 в 9:31
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Math.ceil()
Метод Math.ceil() — округление вверх. Округляет аргумент до ближайшего большего целого.
Синтаксис
Math.ceil(x)
Параметры
Описание
Поскольку метод ceil() является статическим методом объекта Math , вы всегда должны использовать его как Math.ceil() , а не пытаться вызывать метод на созданном экземпляре объекта Math (поскольку объект Math не является конструктором).
Примеры
Пример: использование метода Math.ceil()
Следующий пример показывает использование метода Math.ceil() .
Math.ceil(.95); // 1 Math.ceil(4); // 4 Math.ceil(7.004); // 8 Math.ceil(-0.95); // -0 Math.ceil(-4); // -4 Math.ceil(-7.004); // -7
Decimal adjustment
Пример: корректировка округления десятичных дробей
// Замыкание (function () /** * Корректировка округления десятичных дробей. * * @param type Тип корректировки. * @param value Число. * @param exp Показатель степени (десятичный логарифм основания корректировки). * @returns Скорректированное значение. */ function decimalAdjust(type, value, exp) // Если степень не определена, либо равна нулю. if (typeof exp === "undefined" || +exp === 0) return Math[type](value); > value = +value; exp = +exp; // Если значение не является числом, либо степень не является целым числом. if (isNaN(value) || !(typeof exp === "number" && exp % 1 === 0)) return NaN; > // Сдвиг разрядов value = value.toString().split("e"); value = Math[type](+(value[0] + "e" + (value[1] ? +value[1] - exp : -exp))); // Обратный сдвиг value = value.toString().split("e"); return +(value[0] + "e" + (value[1] ? +value[1] + exp : exp)); > // Десятичное округление к ближайшему if (!Math.round10) Math.round10 = function (value, exp) return decimalAdjust("round", value, exp); >; > // Десятичное округление вниз if (!Math.floor10) Math.floor10 = function (value, exp) return decimalAdjust("floor", value, exp); >; > // Десятичное округление вверх if (!Math.ceil10) Math.ceil10 = function (value, exp) return decimalAdjust("ceil", value, exp); >; > >)(); // Округление к ближайшему Math.round10(55.55, -1); // 55.6 Math.round10(55.549, -1); // 55.5 Math.round10(55, 1); // 60 Math.round10(54.9, 1); // 50 Math.round10(-55.55, -1); // -55.5 Math.round10(-55.551, -1); // -55.6 Math.round10(-55, 1); // -50 Math.round10(-55.1, 1); // -60 // Округление вниз Math.floor10(55.59, -1); // 55.5 Math.floor10(59, 1); // 50 Math.floor10(-55.51, -1); // -55.6 Math.floor10(-51, 1); // -60 // Округление вверх Math.ceil10(55.51, -1); // 55.6 Math.ceil10(51, 1); // 60 Math.ceil10(-55.59, -1); // -55.5 Math.ceil10(-59, 1); // -50
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-math.ceil |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- Math.abs()
- Math.floor()
- Math.round()
- Math.sign() Экспериментальная возможность
- Math.trunc() Экспериментальная возможность
