Справочник javascript: Math.round

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

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 - 08:33

#permalink

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


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

#permalink

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

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



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

#permalink

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


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

#permalink

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

var foo = 1 * number.toFixed(2)

Автор: Simon311 (не зарегистрирован), дата: 4 февраля, 2013 - 10: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 - 11:22

#permalink

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

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

Автор: Гость (не зарегистрирован), дата: 13 апреля, 2015 - 19:14

#permalink

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

Math.round(10000.345 * 100) / 100 = 10000.34

Ловите бугурт.

Number.prototype.round = function(base) {
    if (base == null || base < 0) {
        return this;
    }
    
    var string = this.toString();
    var point_index = string.indexOf(".");
    if (point_index == -1) {
        return this;
    }
    var symbol_index = point_index + 1 + base;
    if (symbol_index >= string.length) {
        return this;
    }
    
    var integer    = parseInt(string.substring(0, point_index), 10);
    var fractional = parseInt(string.substring(point_index + 1, point_index + 1 + base), 10) || 0;
    var symbol     = parseInt(string.charAt(symbol_index), 10);
    if (symbol >= 5) {
        if (base == 0) {
            integer ++;
        } else {
            fractional ++;
        }
    }
    
    return parseFloat(integer + "." + fractional);
}

Автор: Гость (не зарегистрирован), дата: 14 апреля, 2015 - 14:01

#permalink

предыдущая версия немного неверная. смотрите гист https://gist.github.com/andrew-aladev/3ffaaf689745bc49d2b1


 
Поиск по сайту
Содержание

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

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