Round (transact-sql)
Содержание:
- Как проверить является ли переменная числом
- Форматирование чисел
- Методы округления чисел
- Округление числа в Javascript
- Форматирование чисел
- JavaScript-математика, округление до двух знаков после запятой (9)
- Другие математические функции
- Сравнение дробных чисел
- Как явно преобразовать строку в число?
- Функция isNaN
- Целая и дробная часть числа
- Работающие реализации на Go
- Browser compatibility
- Великий и могучий Math
- Функция isFinite
- Browser compatibility
- Форматирование чисел
Как проверить является ли переменная числом
Определить является ли значение переменной числом можно используя один из следующих способов:
1. С использованием функций isNaN и isFinite:
// myVar — переменная
if (!isNaN(parseFloat(myVar)) && isFinite(parseFloat(myVar))) {
//myVar — это число или может быть приведено к нему
};
В виде функции:
// функция
function isNumeric(value) {
return !isNaN(parseFloat(value)) && isFinite(parseFloat(value));
}
// использование
var myVar = «12px»;
console.log(isNumeric(myVar)); //true
Этот способ позволяет определить является ли указанное значение числом или может быть приведено к нему. Данный вариант не считает числом пустую строку, строку из пробелов, значение null , Infinity , -Infinity , true и false .
2. С использованием оператора typeof и функций isFinite, isNaN:
// функция которая проверяет является ли значение числом
function isNumber(value) {
return typeof value === «number» &&
isFinite(value) &&
!isNaN(value);
};
// использование функции isNumber
isNumber(18); //true
// использование функций для проверки текстовых значений
isNumber(parseFloat(«»)); //false
isNumber(parseFloat(«Infinity»)); //false
isNumber(parseFloat(«12px»)); //true
Эта функция определяет имеет ли указанное значение тип Number, а также не принадлежит ли оно к одному из специальных значений Infinity, -Infinity и NaN. Эсли это так, то данная функция возвращает значение true.
3. С помощью метода ECMAScript 6 Number.isInteger(value) . Данный метод позволяет определить, является ли указанное значение целым числом.
Number.isInteger(«20»); //false, т.к. данный метод не выполняет перевод строки в число
Number.isInteger(20); //true, т.к. данное значение является числом
Форматирование чисел
В JavaScript отформатировать вывод числа в соответствии с региональными стандартами (языковыми настройками операционной системы) позволяет метод toLocaleString() .
Например, выполним форматирование числа в соответствии с региональными стандартами, которые установлены в системе по умолчанию:
Var number = 345.46;
console.log(number.toLocaleString()); //»345,46″
Например, выполним форматирование числа в соответствии с региональными стандартами России (ru):
Console.log((108.1).toLocaleString(«ru-RU»)); //»108,1″
Данный метод можно также использовать для форматирования числа в виде валюты:
Console.log((2540.125).toLocaleString(«ru-RU»,{style:»currency», currency:»RUB»})); //»2 540,13 ₽»
console.log((89.3).toLocaleString(«ru-RU»,{style:»currency», currency:»USD»})); //»89,30 $»
console.log((2301.99).toLocaleString(«ru-RU»,{style:»currency», currency:»EUR»})); //»2 301,99 €»
Представление числа в виде процентов:
Console.log((0.45).toLocaleString(«ru-RU»,{style:»percent»})); //»45 %»
Разбить число на разряды (свойство useGrouping):
Console.log((125452.32).toLocaleString(«ru-RU»,{useGrouping:true})); //»125 452,32″
Вывести с число с определённым количеством цифр (2) после запятой:
Console.log((1240.4564).toLocaleString(«ru-RU»,{minimumFractionDigits:2, maximumFractionDigits:2})); //»1 240,46″
Методы округления чисел
В JavaScript имеется
встроенный объект Math, предоставляющий различные математические методы.
Здесь мы рассмотрим функции, связанные с округлением чисел. Они следующие:
-
Math.floor – округление в
меньшую сторону; -
Math.ceil – округление в
большую сторону; -
Math.round – округление до
ближайшего целого.
Например:
let dig = 1.5; let res = Math.floor(dig); console.log( res ); // 1 console.log( Math.ceil(dig) ); // 2 console.log( Math.round(1.4) ); // 1 console.log( Math.round(1.5) ); // 2
А что если мы
хотим округлить число до второго знака после запятой (до сотых)? Это можно
сделать, например, так:
let dig = 1.23456; let res = Math.round(dig*100)100; console.log( res );
Но для такой
операции в JavaScript имеется
встроенный числовой метод toFixed(n), где n – число знаков
после запятой. Наш пример можно переписать так:
console.log( dig.toFixed(2) );
Округление числа в Javascript
Округлить дробное число до целого значения в JavaScript можно различными способами.
1. Используя специально предназначенные для этого методы Math.floor , Math.ceil и Math.round . Метод Math.floor округляет дробное число до ближайшего целого вниз, т.е. попросту отбрасывает дробную часть. Math.ceil скругляет дробное число до ближайшего целого вверх. Math.round округляет число вверх или вниз в зависимости от значения дробной части. Если дробная часть больше или равно 0.5, то вверх, иначе скруление осуществляется вниз.
Console.log(Math.floor(7.9)); //7
console.log(Math.ceil(7.2)); //8
console.log(Math.round(7.5)); //8
2. С помощью метода toFixed(точность) . Данный метод округляет дробную часть числа до заданной точности. Результат округления возвращает в виде строки.
Console.log(7.987.toFixed(2)); //»7.99″
Если знаков после запятой для формирования указанной точности числа не хватает, то оно дополняется нулями.
Console.log(7.987.toFixed(5)); //»7.98700″
3. Посредством метода toPrecision(точность) . Данный метод представляет число с указанной точностью. При этом он может округлить не только дробную, но и целую часть числа. Полученное число данный метод может представить в зависимости от результата с фиксированной запятой или в экспоненциальной форме.
Console.log((1001).toPrecision(2)); //»1.0e+3″
console.log((1001).toPrecision(5)); //»1001.0″
console.log((12.4).toPrecision(1)); //»1e+1″
console.log((12.4).toPrecision(2)); //»12″
console.log((12.4).toPrecision(3)); //»12.4″
console.log((12.4).toPrecision(5)); //»12.400″
4. Используя логические операторы НЕ или ИЛИ.
//посредством двойного логического отрицания
console.log(~~7.9); //7
// посредством использования логического ИЛИ с нулём:
console.log(7.9^0); //7
Форматирование чисел
В JavaScript отформатировать вывод числа в соответствии с региональными стандартами (языковыми настройками операционной системы) позволяет метод toLocaleString() .
Например, выполним форматирование числа в соответствии с региональными стандартами, которые установлены в системе по умолчанию:
Var number = 345.46;
console.log(number.toLocaleString()); //»345,46″
Например, выполним форматирование числа в соответствии с региональными стандартами России (ru):
Console.log((108.1).toLocaleString(«ru-RU»)); //»108,1″
Данный метод можно также использовать для форматирования числа в виде валюты:
Console.log((2540.125).toLocaleString(«ru-RU»,{style:»currency», currency:»RUB»})); //»2 540,13 ₽»
console.log((89.3).toLocaleString(«ru-RU»,{style:»currency», currency:»USD»})); //»89,30 $»
console.log((2301.99).toLocaleString(«ru-RU»,{style:»currency», currency:»EUR»})); //»2 301,99 €»
Представление числа в виде процентов:
Console.log((0.45).toLocaleString(«ru-RU»,{style:»percent»})); //»45 %»
Разбить число на разряды (свойство useGrouping):
Console.log((125452.32).toLocaleString(«ru-RU»,{useGrouping:true})); //»125 452,32″
Вывести с число с определённым количеством цифр (2) после запятой:
Console.log((1240.4564).toLocaleString(«ru-RU»,{minimumFractionDigits:2, maximumFractionDigits:2})); //»1 240,46″
JavaScript-математика, округление до двух знаков после запятой (9)
У меня есть следующий синтаксис JavaScript:
Var discount = Math.round(100 — (price / listprice) * 100);
Это округляется до целого числа. Как я могу вернуть результат с двумя десятичными знаками?
Вот рабочий пример
Var value=200.2365455;
result=Math.round(value*100)/100 //result will be 200.24
Для обработки округления до любого количества десятичных знаков для большинства потребностей будет достаточно функции с 2 строками кода. Вот пример кода для игры.
Var testNum = 134.9567654;
var decPl = 2;
var testRes = roundDec(testNum,decPl);
alert (testNum + » rounded to » + decPl + » decimal places is » + testRes);
function roundDec(nbr,dec_places){
var mult = Math.pow(10,dec_places);
return Math.round(nbr * mult) / mult;
}
Лучшее и простое решение, которое я нашел, это
Function round(value, decimals) {
return Number(Math.round(value+»e»+decimals)+»e-«+decimals);
}
round(1.005, 2); // 1.01
Небольшая вариация принятого ответа. toFixed(2) возвращает строку, и вы всегда получите два десятичных знака. Это могут быть нули. Если вы хотите подавить конечный ноль (ы), просто выполните это:
Var discount = + ((price / listprice).toFixed(2));
Отредактировано: Я только что обнаружил, что кажется ошибкой в Firefox 35.0.1, а это означает, что приведенное выше может дать NaN некоторые значения. Я изменил свой код на
Var discount = Math.round(price / listprice * 100) / 100;
Это дает число с точностью до двух знаков после запятой. Если вам нужно три, вы будете умножать и делить на 1000, и так далее. OP хочет два десятичных разряда всегда, но если toFixed () нарушено в Firefox, сначала нужно зафиксировать его. См. https://bugzilla.mozilla.org/show_bug.cgi?id=1134388
Чтобы получить результат с двумя десятичными знаками, вы можете сделать следующее:
Var discount = Math.round((100 — (price / listprice) * 100) * 100) / 100;
Значение, которое нужно округлить, умножается на 100, чтобы сохранить первые две цифры, затем мы делим на 100, чтобы получить фактический результат.
Я думаю, что лучший способ, который я видел, это умножить на 10 на количество цифр, затем сделать Math.round, а затем, наконец, делить на 10 на количество цифр. Вот простая функция, которую я использую в машинописных текстах:
Function roundToXDigits(value: number, digits: number) {
value = value * Math.pow(10, digits);
value = Math.round(value);
value = value / Math.pow(10, digits);
return value;
}
Или простой javascript:
Function roundToXDigits(value, digits) {
if(!digits){
digits = 2;
}
value = value * Math.pow(10, digits);
value = Math.round(value);
value = value / Math.pow(10, digits);
return value;
}
ПРИМЕЧАНИЕ. — См. Редактировать 4, если важна 3-значная точность.
Var discount = (price / listprice).toFixed(2);
toFixed округляется вверх или вниз для вас в зависимости от значений, превышающих 2 десятичных знака.
Изменить.
Как упоминалось другими, это преобразует результат в строку. Чтобы избежать этого:
Var discount = +((price / listprice).toFixed(2));
Требуется одна незначительная модификация, но функция в ответе, указанном выше, возвращает целые числа, когда она округляется до одной, поэтому, например, 99.004 вернет 99 вместо 99,00, что не идеально подходит для отображения цен.
Edit 3
— Кажется, что toFixed на фактическом возврате STILL закручивал некоторые цифры, это окончательное редактирование, похоже, работает. Geez так много репараций!
Var discount = roundTo((price / listprice), 2);
function roundTo(n, digits) {
if (digits === undefined) {
digits = 0;
}
var multiplicator = Math.pow(10, digits);
n = parseFloat((n * multiplicator).toFixed(11));
var test =(Math.round(n) / multiplicator);
return +(test.toFixed(digits));
}
Редактировать 4
— Вы, ребята, меня убиваете. Edit 3 терпит неудачу на отрицательных числах, не копаясь в том, почему проще просто сделать отрицательное число положительным, прежде чем делать округление, а затем вернуть его обратно, прежде чем возвращать результат.
Function roundTo(n, digits) {
var negative = false;
if (digits === undefined) {
digits = 0;
}
if(n
Самый быстрый путь
— быстрее, чем toFixed ():
Другие математические функции
Math.random() возвращает
псевдослучайное число в диапазоне (0; 1], например:
for(let i = ;i < 10;++i) console.log( Math.random() );
Причем, при
каждом запуске будем получать разные последовательности чисел.
Math.max(a, b, c…) / Math.min(a, b, c…) возвращают наибольшее/наименьшее число из переданных аргументов:
let max = Math.max(1, 2, , -10, 5, 7); let min = Math.min(1, 2, -10, 5); console.log( max ); // 7 console.log( min ); // -10
Число аргументов
может быть любым.
Math.pow(n, power) возвращает число n, возведённое в степень power:
console.log( Math.pow(2, 10) ); // 2 в степени 10 = 1024
Объект Math содержит
множество других функций (cos, sin) и констант,
например, PI, которыми удобно
оперировать в JavaScript.
Видео по теме
JavaScipt #1: что это такое, с чего начать, как внедрять и запускать
JavaScipt #2: способы объявления переменных и констант в стандарте ES6+
JavaScript #3: примитивные типы number, string, Infinity, NaN, boolean, null, undefined, Symbol
JavaScript #4: приведение типов, оператор присваивания, функции alert, prompt, confirm
JavaScript #5: арифметические операции: +, -, *, /, **, %, ++, —
JavaScript #6: условные операторы if и switch, сравнение строк, строгое сравнение
JavaScript #7: операторы циклов for, while, do while, операторы break и continue
JavaScript #8: объявление функций по Function Declaration, аргументы по умолчанию
JavaScript #9: функции по Function Expression, анонимные функции, callback-функции
JavaScript #10: анонимные и стрелочные функции, функциональное выражение
JavaScript #11: объекты, цикл for in
JavaScript #12: методы объектов, ключевое слово this
JavaScript #13: клонирование объектов, функции конструкторы
JavaScript #14: массивы (array), методы push, pop, shift, unshift, многомерные массивы
JavaScript #15: методы массивов: splice, slice, indexOf, find, filter, forEach, sort, split, join
JavaScript #16: числовые методы toString, floor, ceil, round, random, parseInt и другие
JavaScript #17: методы строк — length, toLowerCase, indexOf, includes, startsWith, slice, substring
JavaScript #18: коллекции Map и Set
JavaScript #19: деструктурирующее присваивание
JavaScript #20: рекурсивные функции, остаточные аргументы, оператор расширения
JavaScript #21: замыкания, лексическое окружение, вложенные функции
JavaScript #22: свойства name, length и методы call, apply, bind функций
JavaScript #23: создание функций (new Function), функции setTimeout, setInterval и clearInterval
Сравнение дробных чисел
У математических вычислений есть одна особенность — их результат не всегда абсолютно точный. Это проблема
не только JavaScript, но и большинства языков программирования. Так происходит потому, что числа и другие
данные переводятся в двоичный код, и только потом с ними производятся вычисления. В большинстве случаев это
не приводит к особенным трудностям, просто в результате расчётов иногда получается число с большим количеством
знаков после запятой. Но есть ситуация, когда неточность вычислений влияет на работу программы. Это сравнение
чисел. Если сравниваются разные числа, то здесь всё должно быть нормально.
5.1
Но если при вычислении получаются два одинаковых дробных числа, то результат их сравнения не предсказуем.
Они могут быть равны, либо одно может быть больше другого. Когда в скрипте
используется такое сравнение,
то нужно проверять, правильно ли работает скрипт. Если в нём есть ошибка, то нужно округлять значения, которые
сравниваются.
Как явно преобразовать строку в число?
Явно привести строку в число можно посредством следующих способов:
1. Использовать унарный оператор +
, который необходимо поместить перед значением.
+»7.35″; // 7.35
+»текст»; // NaN
Этот способ пренебрегает пробелами в начале и конце строки, а также \n (переводом строки).
+» 7.35 «; //7.35
+»7.35 \n «; //7.35
Используя данный способ необходимо обратить внимание на то, что пустая строка или строка, состоящая из пробелов и \n , переводится в число 0. Кроме этого она также преобразует тип данных null и логические значения к числу
Null; //0
+true; //1
+false; //0
+» «; //0
2. Функция parseInt
. Данная функция предназначена для преобразования аргумента в целое число
. В отличие от использования унарного оператора +
, данный метод позволяет преобразовать строку в число, в которой не все символы являются цифровыми
. Начинает она преобразовывать строку, начиная с первого символа. И как только она встречает символ, не являющийся цифровым, данная функция останавливает свою работу и возвращает полученное число.
ParseInt(«18px»); //18
parseInt(«33.3%»); //33
Данная функция может работать с разными системами счисления (двоичной, восьмеричной, десятичной, шестнадцатеричной). Указание основание системы счисления осуществляется посредством 2 аргумента.
ParseInt(«18px», 10); //18
parseInt(«33.3%», 10); //33
parseInt(«101»,2); //5
parseInt(«B5»,16); //181
Кроме функции parseInt
в JavaScript имеется метод Number.parseInt
. Данный метод ничем не отличается от функции parseInt
и был введён в JavaScript со спецификацией ECMASCRIPT 2015 (6).
3. Функция parseFloat
. Функция parseFloat
аналогична parseInt
, за исключением того что позволяет выполнить преобразование аргумента в дробное число.
ParseFloat(«33.3%»); //33.3
Кроме этого функция parseFloat
в отличие от parseInt
не имеет 2 аргумента, и следовательно она всегда пытается рассмотреть строку как число в десятичной системе счисления.
ParseFloat(«3.14»);
parseFloat(«314e-2»);
parseFloat(«0.0314E+2»);
Кроме функции parseFloat
в JavaScript имеется метод Number.parseFloat
. Данный метод ничем не отличается от функции parseFloat
и был введён в JavaScript со спецификацией ECMASCRIPT 2015 (6).
Функция isNaN
Функция isNaN
предназначена для определения того, является ли аргумент числом или может ли быть преобразован к нему. Если это так, то функция isNaN возвращает false. В противном случае она возвращает true.
IsNaN(NaN); //true
isNaN(«25px»); //true, т.к. 20px — это не число
isNaN(25.5); //false
isNaN(«25.5″); //false
isNaN(» «); //false, т.к. пробел или неcколько пробелов преобразуется к 0
isNaN(null); //false, т.к. значение null преобразуется к 0
isNaN(true); //false, т.к. значение true преобразуется к 1
isNaN(false); //false, т.к. значение false преобразуется к 0
Если это действие нужно выполнить без приведения типа, то используйте метод Number.isNaN
. Данный метод был введён в язык, начиная с ECMAScript 6.
Целая и дробная часть числа
Получить целую часть числа можно используя метод Math.floor() и parseInt() :
Console.log(Math.floor(7.21)); // 7
console.log(parseInt(7.21)); // 7
Получить дробную часть числа можно воспользовавшимся оператором процент (%). Данный оператор возвращает остаток, который будет получен от деления первого числа на второе. В данном случае в качестве 2 числа необходимо использовать 1.
Console.log(7.21%1); // 0.20999999999999996
// с точностью до 2 знаков после запятой
console.log((7.21%1).toFixed(2)); // «0.21»
Кроме этого дробную часть можно получить также с помощью вычислений:
Var number = 7.21;
var fractionNumber = number — Math.floor(Math.abs(number));
console.log(fractionNumber); // 0.20999999999999996
Делится ли число нацело
Определить делится ли число нацело можно используя оператор процента:
Var number = 9;
// если остаток от деления числа number на 3 равен 0, то да, иначе нет
if (number%3==0) {
console.log («Число » + number + » делится на 3″);
} else {
console.log («Число » + number + » не делится на 3″);
}
Работающие реализации на Go
Round(), используемая в Postgres
Выше я уже упоминал, что в Postgres содержится код функции Round() на C, который работает для всех тестируемых значений. В CockroachDB мы , без комментариев он выглядит следующим образом:
Давайте разберёмся, как он работает. Первые шесть строк обрабатывают особые случаи. Далее мы выбираем roundFn из Ceil и Floor в зависимости от того, положительное число или отрицательное. Далее начинается самое интересное:
Этим кодом мы сдвигаем x ближе к нулю.
Далее мы проверяем, не стал ли x в точности нулём и не поменялся ли у него знак. Это означает что исходное число <= 0,5, в этом случае мы возвращаем ноль с нужным знаком.
Эта проверка нужна для очень больших чисел, для которых x-0,5 == x-1,0, в этих случаях мы можем вернуть число неизменённым.
Далее мы округляем число с помощью Floor() или Ceil() и возвращаем это значение, если оно отличается от x, что может случиться, только если дробная часть входного значения не равна в точности 0,5, так как выше мы вычли 0,5 из него.
Теперь мы знаем, что дробная часть равна 0,5, поэтому нам нужно округлить до ближайшего чётного числа (реализация Round() в Postgres в этом месте отличается от приведённых выше вариантов). Комментарий в коде лучше это описывает:
Чтобы сохранить оригинальное поведение, этот код можно заменить на следующий:
github.com/montanaflynn/stats
Ещё одна работающая реализация содержится в пакете github.com/montanaflynn/stats. Без комментариев она выглядит следующим образом:
Ключевое отличие от предыдущих решений заключается в использовании функции Modf(), которая корректно разделяет целую и дробную части чисел.
Browser compatibility
The compatibility table in this page is generated from structured data. If you»d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
Android webview |
Chrome for Android |
Firefox for Android |
Opera for Android |
Safari on iOS |
Samsung Internet |
Node.js |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
round |
Chrome Full support 1 |
Edge Full support 12 |
Firefox Full support 1 |
IE Full support 3 |
Opera Full support Yes |
Safari Full support Yes |
WebView Android Full support 1 |
Chrome Android Full support 18 |
Firefox Android Full support 4 |
Opera Android Full support Yes |
Safari iOS Full support Yes |
Samsung Internet Android Full support 1.0 |
nodejs Full support Yes |
Часто результатом расчётов бывает число с большим количеством знаков после запятой. Если это число будет
использовано для дальнейших
расчётов, то его можно оставить в таком виде. Но иногда требуется округление числа, например для вывода
на страницу.
В JavaScript округление чисел осуществляется несколькими методами.
Метод Math.round()
округляет значение до целого числа.
Math.round (число)
Округление числа производится по математическим
правилам. То есть, если после запятой идёт цифра от 0 до 4, то дробная часть просто отбрасывается. А если
после запятой идёт цифра от 5 до 9, то дробрая часть отбрасывается, а к целой части прибавляется единица.
пример:
JavaScript:
Есть ещё два метода, которые округляют число до целого значения. Метод
Math.floor()
округляет в меньшую сторону. Он отбрасывает дробную часть числа.
А метод Math.ceil()
округляет в большую сторону. Он отбрасывает дробную часть,
а к целой части прибавляет единицу. Пример:
Конечно, 5 — (-2) это 5+2. Не завбывайте, что число 5 Вы в этой формуле не получите. Максимальное будет
4.999999999. Полученные значения можно округлить до нужной точности.
Если нужны только целые числа, то полученные значения можно округлять до целого в меньшую сторону. К
максимуму нужно прибавить единицу, чтобы этот максимум тоже был возможен. Формула получается такая:
целое число = Math.floor (минимум + Math.random() * (максимум + 1 — минимум)
Выведем числа от 10 до 15:
2021222324 |
for (i=1; i |
Великий и могучий Math
Глобальный объект Math включает в себя огромное количество разнообразных математических и тригонометрических функций. Это очень нужный объект и часто выручает разработчиков при работе с цифровыми данными.
На других платформах существуют аналогии Math. Например, в таких популярных языках, как Java и C#, Math представляет собой класс, который поддерживает все те же стандартные функции. Так что как видите этот инструмент действительно великий и могучий.
Теперь я хочу пройтись по конкретным методам, отвечающим за округление, и подробно о них рассказать.
Math.floor ()
Начну с Math.
floor
Обратите внимание на наименование метода. Логически становится понятно, что раз речь идет об округлении, а дословный перевод слова «floor» означает «пол», то данный инструмент округлит обрабатываемые значения в меньшую строну
Также возможен вариант, когда обработанное число с помощью этой функции осталось прежним. Все потому, что округление осуществляется по нестрогому неравенству (
в ответе будет число 4.
Math.ceil ()
Опять-таки посмотрите на название (в такой способ материал быстрее усваивается). Если кто-то не знает, то «ceil» означает «потолок». Значит округление числовых данных будет осуществляться в большую сторону, используя нестрогое неравенство (>=).
Как вы уже догадались, в ответе будет число 5.
Math.round ()
Данный метод округляет дробное число до ближайшего целого. Так, если дробная часть находится в диапазоне от 0 и до 0.5 не включительно, то округление происходит к меньшему значению. А если дробная часть находится в диапазоне от включительно 0.5 и до следующего целого числа, то она округляется к большему целому.
Надеюсь, все подумали или сказали правильный ответ – 5.
Функция isFinite
Функция isFinite
позволяет проверить, является ли аргумент конечным числом.
В качестве ответа данная функция возвращает false , если аргумент является Infinity , -Infinity , NaN или будет быть приведён к одному из этих специальных числовых значений. В противном случае данная функция вернёт значение true .
IsFinite(73); // true
isFinite(-1/0); // false
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(«Текст»); // false
Кроме глобальной функции isFinite
в JavaScript имеется ещё метод Number.isFinite
. Он в отличие от isFinite
не осуществляет принудительное приведения аргумента к числу.
IsFinite(«73»); // true
Number.isFinite(«73»); // false
Browser compatibility
The compatibility table in this page is generated from structured data. If you»d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
Android webview |
Chrome for Android |
Firefox for Android |
Opera for Android |
Safari on iOS |
Samsung Internet |
Node.js |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
round |
Chrome Full support 1 |
Edge Full support 12 |
Firefox Full support 1 |
IE Full support 3 |
Opera Full support Yes |
Safari Full support Yes |
WebView Android Full support 1 |
Chrome Android Full support 18 |
Firefox Android Full support 4 |
Opera Android Full support Yes |
Safari iOS Full support Yes |
Samsung Internet Android Full support 1.0 |
nodejs Full support Yes |
Форматирование чисел
В JavaScript отформатировать вывод числа в соответствии с региональными стандартами (языковыми настройками операционной системы) позволяет метод toLocaleString() .
Например, выполним форматирование числа в соответствии с региональными стандартами, которые установлены в системе по умолчанию:
Var number = 345.46;
console.log(number.toLocaleString()); //»345,46″
Например, выполним форматирование числа в соответствии с региональными стандартами России (ru):
Console.log((108.1).toLocaleString(«ru-RU»)); //»108,1″
Данный метод можно также использовать для форматирования числа в виде валюты:
Console.log((2540.125).toLocaleString(«ru-RU»,{style:»currency», currency:»RUB»})); //»2 540,13 ₽»
console.log((89.3).toLocaleString(«ru-RU»,{style:»currency», currency:»USD»})); //»89,30 $»
console.log((2301.99).toLocaleString(«ru-RU»,{style:»currency», currency:»EUR»})); //»2 301,99 €»
Представление числа в виде процентов:
Console.log((0.45).toLocaleString(«ru-RU»,{style:»percent»})); //»45 %»
Разбить число на разряды (свойство useGrouping):
Console.log((125452.32).toLocaleString(«ru-RU»,{useGrouping:true})); //»125 452,32″
Вывести с число с определённым количеством цифр (2) после запятой:
Console.log((1240.4564).toLocaleString(«ru-RU»,{minimumFractionDigits:2, maximumFractionDigits:2})); //»1 240,46″