Справочник javascript: Math.round
Форум |
Учебник | Node.JS скринкаст | Стандарт языка | Справочник |
Discord чат |
| Статьи | Тест знаний | Аналоги функций PHP |
Справочник javascript: Math.round
Форум |
Учебник | Node.JS скринкаст | Стандарт языка | Справочник |
Discord чат |
| Статьи | Тест знаний | Аналоги функций PHP |
Автор: hriast (не зарегистрирован), дата: 16 сентября, 2009 - 08:33
#permalinkОчень жаль, что нет функции, которая округляет до нужного знака. В статье неплохо бы ее написать.
Автор: Свят (не зарегистрирован), дата: 6 декабря, 2009 - 00:20
#permalinkОкругление до нужной точности после запятой
Для этого используется метод toFixed.
0.1234.toFixed(2) = 0.12
Автор: Герман (не зарегистрирован), дата: 13 сентября, 2010 - 12:59
#permalinkНе могу найти функцию, которая возвращает дробную часть числа
Автор: Гость (не зарегистрирован), дата: 1 марта, 2011 - 18:37
#permalinkСтоит еще раз поставить ударение: toFixed возвращает строковое представление числа, а поскольку и сравнение и сложение для строковых переменных в JS возможно (последнее становится конкатенацией) то желательно применять что то вроде
Автор: 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 с нужной точностью, для страждущих:
Ловите бугурт.
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