jquery округление до целого

Часто вычисления дают результаты, которые не соответствуют пределам нужных диапазонов. В результате нужно осуществлять JavaScript округление до определенного значения.

Содержание

  1. Для чего округлять числа?
  2. Округление десятичных чисел
  3. Как избежать ошибок при округлении десятичных дробей
  4. Округление с помощью эпсилона
  5. Усечение десятичных чисел
  6. Округление до ближайшего числа
  7. Округление вниз до ближайшего целого числа
  8. Округление вверх до ближайшего целого числа
  9. Округление до ближайшего кратного числа
  10. Привязка к диапазону
  11. Округление по Гауссу
  12. Десятичные числа в CSS
  13. Отмечен как дубликат участниками mymedia, freim, L.F.C., ЮрийСПб ♦ 22 мар в 13:42 .

Для чего округлять числа?

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

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

Округление десятичных чисел

Чтобы « обрезать » десятичное число, используются методы toFixed() или toPrecision() . Они оба принимают один аргумент, который определяет количество значимых и знаков после запятой, которые должны быть включены в результат:

  • если для toFixed() аргумент не определен, значение по умолчанию равно 0 , то есть без знаков после запятой; максимальное значение аргумента равно 20 ;
  • если для toPrecision() аргумент не задан, число не изменяется.

И toFixed() , и toPrecision возвращают округленное строчное представление результата, а не число. Это означает, что прибавление rounded к randNum в результате даст конкатенацию строк, а не одно число:

Если нужно получить в результате JavaScript округления до сотых число, используйте parseFloat() :

toFixed() и toPrecision() также являются полезными методами для усечения большого количества знаков после запятой. Это удобно при работе с числами, представляющими денежные единицы:

Обратите внимание, что если в числе больше знаков, чем задано параметром точности, toPrecision будет выдавать результат в научном формате:

Как избежать ошибок при округлении десятичных дробей

В некоторых случаях toFixed и toPrecision осуществляют JavaScript округление 5 в меньшую сторону , а не до большего:

Результатом приведенного выше примера должно быть 1.01, а не 1. Если нужно избежать этой ошибки, я рекомендую использовать экспоненциальные числа:

Если нужно еще более надежное решение, чем округление, оно доступно на MDN .

Округление с помощью эпсилона

Альтернативный метод JavaScript округления до десятых был введен в ES6 ( также известном, как JavaScript 2015 ). « Машинный эпсилон » обеспечивает разумный предел погрешности при сравнении двух чисел с плавающей запятой. Без округления, сравнения могут дать результаты, подобные следующим:

Math.EPSILON может быть использован в функции для получения корректного сравнения:

Функция принимает два аргумента : один содержит вычисления, второй ожидаемый ( округленный ) результат. Она возвращает сравнение этих двух параметров:

Все современные браузеры поддерживают математические функции ES6 . Но если необходимо обеспечить поддержку в старых браузерах, то нужно использовать полифиллы .

Усечение десятичных чисел

Все методы, представленные ранее, выполняют JavaScript округление до десятых . Чтобы усечь положительное число до двух знаков после запятой, умножить его на 100 , усечь снова, а затем полученный результат разделить на 100 , нужно:

Если требуется что-то более гибкое, можно воспользоваться побитовым оператором:

Округление до ближайшего числа

Чтобы осуществить JavaScript округление до целого , используется Math.round() :

Обратите внимание, что « половинные значения «, такие как .5 , округляются вверх.

Округление вниз до ближайшего целого числа

Если вы хотите округлять в меньшую сторону, используйте метод Math.floor() :

Округление « вниз » имеет одно направление для всех чисел, в том числе и для отрицательных. Это можно представить, как небоскреб с бесконечным количеством этажей, в том числе и ниже уровня фундамента ( представляющих отрицательные числа ). Если вы находитесь в лифте между подвальными этажами 2 и 3 ( что соответствует значению -2.5 ), Math.floor доставит вас на этаж -3 :

Если нужно избежать этого, используйте JavaScript Math округление с помощью Math.trunc() , поддерживаемый во всех современных браузерах ( кроме IE / Edge ):

MDN также предоставляет полифилл из трех строк для обеспечения поддержки Math.trunc в старых браузерах и IE / Edge .

Если вы хотите округлить десятичные числа вверх, используйте Math.ceil . Действие этого метода также можно представить, как бесконечный лифт: Math.ceil всегда везет вас « вверх «, независимо от того, является ли число отрицательным или положительным:

Округление до ближайшего кратного числа

Если нужно округлить значение до ближайшего числа, кратного 5 , создайте функцию, которая делит число на 5 , округляет его, а затем умножает результат на то же значение:

Если нужно выполнить JavaScript округление до двух знаков, можно передавать функции, как начальное число, так и кратность:

Чтобы использовать функцию, включите в ее вызов округляемое число и кратность:

Чтобы округлять значения только в большую или меньшую сторону замените в функции round на ceil или floor .

Привязка к диапазону

Иногда нужно получить значение х , которое должно находиться в пределах определенного диапазона. Например, нужно значение от 1 до 100 , но мы получаем значение 123 . Чтобы исправить это, можно использовать min() ( возвращает наименьшее из чисел ) и max ( возвращает максимально допустимое число ).

Можно создать функцию или расширение класса Number :

Округление по Гауссу

Округление по Гауссу (« банковское «, конвергентное или голландское ) представляет собой метод округления без статистической погрешности. Стандартное JavaScript округление иногда дает погрешности в большую сторону. Округление по Гауссу позволяет избежать этой погрешности с помощью округления до ближайшего четного числа. Лучшее решение, которое мне известно:

Десятичные числа в CSS

Так как JavaScript часто используется для получения информации о позиции или преобразования HTML-элементов , то можно задаться вопросом, что произойдет, если мы сгенерируем десятичные значения для элементов:

Современные браузеры поддерживают десятичные значения в блочной модели, в том числе процентные и пиксельные единицы.

Данная публикация представляет собой перевод статьи « JavaScript Rounding Recipes » , подготовленной дружной командой проекта Интернет-технологии.ру

Для округление чисел в jquery есть универсальная функция toFixed, которые позволяет округлять числа, как с дробной частью, так и без неё по правилам математики.

Округление до целового числа

Есть число 7.645 и его надо округлить до 8

Округление с дробной частью

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

На данный вопрос уже ответили:

Здраствуйте. Есть возможность с помощю jquery округлить допустим 7.6545454 до 8? спасибо.

Отмечен как дубликат участниками mymedia, freim, L.F.C., ЮрийСПб ♦ 22 мар в 13:42 .

Подобный вопрос задавали ранее и на него уже получен ответ. Если представленные ответы не являются исчерпывающими, пожалуйста, задайте новый вопрос.

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий