Javascript.RU

Math.round

Синтаксис

Math.round(x)

Аргументы

x
число

Описание, примеры

Если дробная часть числа равна 0.5 или больше, то аргумент округляется к следующему большему целому. Если дробная часть меньше, чем 0.5, то округление производится до ближайшего меньшего целого.

// возвратит 20
x=Math.round(20.49)

// возвратит 21
x=Math.round(20.5)

// возвратит -20
x=Math.round(-20.5)

// возвратит -21
x=Math.round(-20.51)

См. также


Автор: hriast (не зарегистрирован), дата: 16 сентября, 2009 - 09:33
#permalink

Очень жаль, что нет функции, которая округляет до нужного знака. В статье неплохо бы ее написать.


Автор: Свят (не зарегистрирован), дата: 6 декабря, 2009 - 01:20
#permalink

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

Для этого используется метод toFixed.
0.1234.toFixed(2) = 0.12


Автор: Гость (не зарегистрирован), дата: 29 мая, 2013 - 20:22
#permalink

.toFixed() не всегда работает правильно.. в Firefox 21.0, Chrome, Safari и Opera результатом такой строки
parseFloat(71.175).toFixed(2) будет 71.17 !!!!!!!!!!!!!!!!!!!!

а такое результатом выражения
Math.round(parseFloat(71.175) * 100) / 100 будет 71.18, т.е. результат правильно округленный

при этом IE на тех же выражениях выдает всегда 71.18 ! похоже "правильность" js еще и от браузера зависит Sad


Автор: Гость (не зарегистрирован), дата: 12 февраля, 2014 - 17:49
#permalink

>не всегда работает правильно...
parseFloat(71.175).toFixed(2)=71.17

правильно, это называется "банковское округление", где при округлении 5 учитывается предшествующий знак, нечетные в меньшую, четные в большую сторону.
поэтому
parseFloat(71.185).toFixed(2) будет 71.19

это округление используется в .NET


Автор: Герман (не зарегистрирован), дата: 13 сентября, 2010 - 13:59
#permalink

Не могу найти функцию, которая возвращает дробную часть числа Sad


Автор: Гость (не зарегистрирован), дата: 13 сентября, 2010 - 14:45
#permalink

123.456 % 1
и взять цифр сколько там надо


Автор: Rantom, дата: 6 июля, 2012 - 12:36
#permalink

можно еще так:
123.456.toString().split(/\./)[1];


Автор: Гость (не зарегистрирован), дата: 1 марта, 2011 - 19:37
#permalink

Стоит еще раз поставить ударение: toFixed возвращает строковое представление числа, а поскольку и сравнение и сложение для строковых переменных в JS возможно (последнее становится конкатенацией) то желательно применять что то вроде

var foo = 1 * number.toFixed(2)

Автор: Questioner-forgot-password (не зарегистрирован), дата: 10 января, 2012 - 21:21
#permalink

Или более жестко:

var foo = parseInt(number.toFixed(fc), 10);

Автор: Гость (не зарегистрирован), дата: 16 октября, 2012 - 01:15
#permalink

var aaa=Math.round(aaa*0.045359237*100)/100


Автор: Иван Никифорович (не зарегистрирован), дата: 21 декабря, 2012 - 12:16
#permalink

Дельный совет, спасибо. Провернуть такое при помощи toFixed() почему-то не получилось.


Автор: Simon311 (не зарегистрирован), дата: 4 февраля, 2013 - 11:50
#permalink

Собственно функция round с нужной точностью, для страждущих:

function round(a,b) {
 b=b || 0;
 return Math.round(a*Math.pow(10,b))/Math.pow(10,b);
}

Автор: Simon311 (не зарегистрирован), дата: 9 февраля, 2013 - 12:22
#permalink

Вот ещё один вариант, но за точность не ручаюсь:

function round(a,b) {
 b=b||0;
 return parseFloat(a.toFixed(b));
}

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
6 + 9 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum