Функции представления объекта Number в разных нотациях. Функции toExponential(), toFixed(), toLocaleString(), toPrecision(), toString(), valueOf()
Содержание
- 1. Обзор функций представления объекта Number
- 2. Функция Number.toExponential(). Получить строку с экспоненциальной формой числа
- 3. Функция Number.toFixed(). Получить число, используя запись с фиксированной точкой
- 4. Функция Number.toLocaleString(). Получить строку с представлением числа в соответствии с заданным языком
- 5. Функция Number.toPrecision(). Получить строку на основе числа с заданной точностью
- 6. Функция Number.toString(). Получить строковое представление числа в указанной системе исчисления
- 7. Функция Number.valueOf(). Получить объект на основании заданного значения
- Связанные темы
Поиск на других ресурсах:
1. Обзор функций представления объекта Number
Объект Number имеет ряд функций, позволяющих представлять его в разных формах (нотациях):
- toExponential();
- toFixed();
- toLocaleString();
- toPrecision();
- toString();
- valueOf().
⇑
2. Функция Number.toExponential(). Получить строку с экспоненциальной формой числа
Функция toExponential() позволяет получить строку в виде экспоненциальной нотации (формы). Функция содержит несколько вариантов объявлений
value.toExponential() value.toExponential(frac_digits)
здесь
- value – числовое значение типа Number, которое нужно представить в экспоненциальной форме;
- frac_digits – целочисленное значение, определяющее количество цифр после десятичной запятой. Если аргумент frac_digits опущен, то указывается столько цифр, сколько нужно для уникального представления значения value. Значение frac_digits должно быть в пределах от 0 до 100 включительно. Если задать значение frac_digits которое выходит за эти пределы, то будет сгенерировано исключение RangeError.
Характерные особенности использования метода:
- если вызвать метод для объекта не являющегося объектом Number, то будет сгенерировано исключение TypeError;
- если нужно использовать метод для числового литерала не имеющего десятичной точки, то перед точкой ставится символ пробел ‘ ‘;
- если число содержит больше цифр, чем указано в аргументе frac_digit, то это число округляется до ближайшего числа. Число цифр в этом ближайшем числе равно frac_digit.
Пример.
// Функция toExponential() - получить число в экспоненциальной нотации // 1. Использование функции без параметров var a = 5/6 var res res = a.toExponential() // res = 8.333333333333334e-1 res = 1234.235.toExponential() // res = 1.234235e+3 res = Number(228/11).toExponential() // res = 2.0727272727272727e+1 res = Number(345678).toExponential() // res = 3.45678e+5 // 2. Использование функции с параметром точности res = 1234.56789.toExponential(3) // res = 1.235e+3 res = 1234.56789.toExponential(1) // res = 1.2e+3 res = (10000/3).toExponential(0) // res = 3e+3 // 3. Указание с символом 'пробел' для корректной интерпретации res = 100 .toExponential() // 1e+2
⇑
3. Функция Number.toFixed(). Получить число, используя запись с фиксированной точкой
Функция toFixed() позволяет получить строковое представление числа с заданным количеством знаков после запятой. Функция имеет две формы использования
value.toFixed() value.toFixed(digits)
здесь
- value – числовое значение типа Number, которое необходимо представить с фиксированной точностью;
- digits – количество знаков после запятой, которые будут получены (отображаться). Значение digits должно быть в пределах от 0 до 20 включительно. Если аргумент digits не указан, то он обрабатывается как 0. Если значение digits выходит за пределы [0; 20], то генерируется исключение RangeError.
Особенности использования функции:
- если вызвать функцию для значения не являющегося типом Number, то будет сгенерировано исключение TypeError;
- функция не возвращает экспоненциальное представление объекта Number;
- если количество десятичных цифр после запятой в числе Number больше значения digits, то результат округляется;
- если количество десятичных цифр после запятой в числе Number меньше значения digits, то результат дополняется нулями;
- если value≥1e+21, то вызывается функция Number.prototype.toString() и функция toFixed() возвращает экспоненциальное представление числа.
Приклад.
// Функция toFixed() - получить число с указанной точностью // 1. Использование функции с 1 параметром var a = 5/6 var res = Number.parseFloat(a).toFixed(2) // res = 0.83 a = 1/3 res = a.toFixed(4) // res = 0.3333 res = 0.2.toFixed(5) // res = 0.20000 res = Number(2.830239).toFixed(0) // res = 3 res = Number.parseFloat(-1.88).toFixed(8) // res = -1.88000000 // 2. Использование функции без параметров a = 15.203367 res = a.toFixed() // res = 15 res = 109.209.toFixed() // res = 109 // 3. Указание значения больше 1e+21 a = 1e+21 + 1 res = a.toFixed() // res = 1e+21 res = a.toFixed(7) // res = 1e+21
⇑
4. Функция Number.toLocaleString(). Получить строку с представлением числа в соответствии с заданным языком
Функция Number.toLocaleString() возвращает строку из представления этого числа в заданном языке. Согласно документации, функция имеет несколько вариантов использования.
value.toLocaleString() value.toLocaleString(locales) value.toLocaleString(locales, options)
здесь
- value – значение, которое обрабатывается;
- locales – задает язык, согласно которому определяется результирующая строка;
- options – аргумент, формирующий детали представления локали. Аргумент options задается в виде пар типа key:value, взятых в фигурные скобки { } (смотрите пример ниже). Для получения более полной информации об использовании аргумента options необходимо обратиться к документации JavaScript.
Если функция вызывается без параметров, форма результирующей строки полностью зависит от реализации.
Пример.
// Функция toLocaleString() // 1. Использование функции без параметров var a = 2345 var res = a.toLocaleString() // res = "2,345" - локаль U.S. English // 2. Использование функции с 1 параметром toLocaleString(locales) // 2.1. Проверка, используется ли заданная локаль в браузере a = 1282 try { res = a.toLocaleString('en-IN') // res = "1,282" } catch (e) { res = e.name("RangeError") } // 2.2. Указание формата локали без проверки res = a.toLocaleString("uk-UA") // res = "1 282" res = a.toLocaleString("ru-RU") // res = "1 282" res = a.toLocaleString("en-US") // res = "1,282" // 3. Использование функции с 2 параметрами // toLocaleString(locales, options) // 3.1. Установить формат валюты США для указанного числа a = 28783.59 var opt = { style : 'currency', currency : 'USD' } // Сформировать опции res = a.toLocaleString("en-US", opt) // res = "$28,783.59" // 3.2. Установить научный формат opt = { notation : 'scientific'} // Сформировать опции res = a.toLocaleString("en-GB", opt) // res = "2.878E4" // 3.3. Установить цифровую систему 'arabext' opt = { numberingSystem : 'arabext' } res = a.toLocaleString("ar-EN", opt) // res = "۲۸٬۷۸۳٫۵۹"
⇑
5. Функция Number.toPrecision(). Получить строку на основе числа с заданной точностью
Функция toPrecision() возвращает строку, представляющую объект Number с заданной точностью. Данная функция может возвращать строку в фиксированной нотации и экспоненциальной нотации.
Функция имеет два случая вызова
value.toPrecision() value.toPrecision(precision)
здесь
- value – объект Number;
- precision – целочисленное значение, определяющее количество значимых цифр. Значение precision должно быть в пределах от 1 до 100 включительно. Если значение precision установить вне диапазона [1; 100], то будет сгенерировано исключение RangeError.
Особенности вызова функции:
- если функция вызывается без параметров (без аргумента precision), данная функция работает так же как Number.toString();
- если аргумент precision не является целым числом, он округляется до ближайшего целого числа.
Пример.
// Функция toPrecision() // 1. Использование функции без параметров var a = 12345.6789 var res = a.toPrecision() // res = "12345.6789" // 2. Использование функции с аргументом precision a = 1234.56789 res = a.toPrecision(1) // res = "1e+3" res = a.toPrecision(2) // res = "1.2e+3" res = a.toPrecision(3) // res = "1.23e+3" res = a.toPrecision(4) // res = "1235" res = a.toPrecision(5) // res = "1234.6" res = a.toPrecision(6) // res = "1234.57" res = a.toPrecision(7) // res = "1234.568" res = a.toPrecision(8) // res = "1234.5679" res = a.toPrecision(9) // res = "1234.56789" res = a.toPrecision(10) // res = "1234.567890" res = a.toPrecision(11) // res = "1234.5678900"
⇑
6. Функция Number.toString(). Получить строковое представление числа в указанной системе исчисления
Метод toString() возвращает строку, представляющую заданный объект Number в указанной системе исчисления. Метод может использоваться в двух формах
value.toString() value.toString(radix)
здесь
- value – объект Number, который конвертируется в строку;
- radix – система исчисления с основанием radix. Значения radix могут быть от 2 до 36.
Характерные особенности функции:
- если значение radix находится за пределами [2; 36], то генерируется исключение RangeError;
- данная функция (метод) toString() переопределяет одноименный метод объекта Object;
- если radix≥10, то последующие цифры, следующие за цифрой ‘9’, используются буквы латинского алфавита от ‘a’ до ‘z’;
- если система исчисления не задана, то считается, что желательной есть система исчисления с основанием 10.
Пример.
// Функция toString() // 1. Использование функции без параметров var a = 2505 var res = a.toString() // res = 2505 // 2. Использование функции с аргументом radix() a = 255 res = a.toString(16) // res = 'ff' - шестнадцатеричная система исчисления a = 10 res = a.toString(2) // res = "1010" - двоичная система исчисления a = 100 res = a.toString(8) // res = '144' - восьмеричная система исчисления
⇑
7. Функция Number.valueOf(). Получить объект на основании заданного значения
Метод Number.valueOf() возвращает примитивное значение, обернутое в объект Number. Использование функции может быть таким
value.valueOf()
Здесь value – примитивное значение, которое обертывается объектом типа Number.
Пример.
// Функция valueOf() var res = Number(255).valueOf() // res = 255 res = "333".valueOf() // res = 333 var num = 25.88 res = num.valueOf() // res = 25.88 var str = "abcd" res = str.valueOf() // res = "abcd" var b = true res = b.valueOf() // res = true
⇑
Связанные темы
- Числовой тип данных Number. Функции преобразования между числовым типом и другими типами. Функции Number(), parseInt(), parseFloat()
- Функции определяющие текущее состояние объекта Number. Функции isFinite(), isInteger(), isNaN(), isSafeInteger()
- Свойства объекта Number
⇑