JavaScript метод toPrecision()

JavaScript Number

Определение и применение

JavaScript метод toPrecision() в зависимости от количества заданных значащих разрядов числа возвращает строку определенной длины, представляющую число (объект Number) в записи с фиксированной запятой, или в экспоненциальной форме записи, округленное до точных значащих цифр.

Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
toPrecision()ДаДаДаДаДаДа

JavaScript синтаксис:

// возвращается строковое представление числа без форматирования
num.toPrecision();

// возвращает строку определенной длины
num.toPrecision( precision );

Версия JavaScript

3 (первоначальная реализация в версии 1.5)

Значения параметров

ПараметрОписание
precisionЦелое число, которое определяет количества значащих разрядов числа. Числовое значение должно находиться в диапазоне от 0 до 21 включительно, некоторые реализации могут дополнительно поддерживать больший диапазон значений. Необязательный параметр.
Если значение параметра precision не указано или равно undefined, то вызывается метод Number.toString() и возвращается строковое представление числа без форматирования. Если значение параметра precision является нецелым числовым значением, то оно будет округлено вниз до ближайшего целого числа.
Для чисел в экспоненциальной форме записи возвращается число знаков после запятой равное значению параметра precision - 1, a для чисел в записи с фиксированной запятой возвращается число значащих цифр, равное значению precision.

Исключения

Тип исключенияОписание
RangeErrorВозникает в том случае, если параметр precision не находится в диапазоне от 1 до 100 (включительно). Диапазон может отличаться в зависимости от конкретной реализации.
TypeErrorВозникает в том случае, если метод вызывается для значения, которое не является числовым объектом.

Пример использования

var num = 12345.6789; // инициализируем числовую переменную

num.toPrecision(); // возвращаемое значение "12345.6789"
num.toPrecision( 3 ); // возвращаемое значение "1.23e+4"
num.toPrecision( 2 ); // возвращаемое значение "1.2e+4"
num.toPrecision( 1.1 ); // возвращаемое значение "1e+4"
num.toPrecision( 1.9 ); // возвращаемое значение "1e+4"
num.toPrecision( 10 ); // возвращаемое значение "12345.67890"
num.toPrecision( 9 ); // возвращаемое значение "12345.6789"
num.toPrecision( 7 ); // возвращаемое значение "12345.68"
num.toPrecision( 5 ); // возвращаемое значение "12346"
num.toPrecision( -1 ); // RangeError
num.toPrecision( 0 ); // RangeError
num.toPrecision( 101 ); // RangeError

var num2 = 123456; // инициализируем числовую переменную

num2.toPrecision(); // возвращаемое значение "12345"
num2.toPrecision( 10 ); // возвращаемое значение "123456.0000"
num2.toPrecision( 5 ); // возвращаемое значение "1.2346e+5"
num2.toPrecision( 3 ); // возвращаемое значение "1.23e+5"
num2.toPrecision( 2 ); // возвращаемое значение "1.2e+5"
num2.toPrecision( 1.1 ); // возвращаемое значение "1e+5"
num2.toPrecision( 1.9 ); // возвращаемое значение "1e+5"
num2.toPrecision( true + true ); // возвращаемое значение "1.2e+5"

var str = "12345.6789"; // инициализируем строковую переменную
str.toPrecision(); // TypeError

123.45.toPrecision( 3 ); // возвращаемое значение "123"
123.toPrecision( 2 );  // SyntaxError
(123).toPrecision( 4 ); // возвращаемое значение "123.0"
123..toPrecision( 4 ); // возвращаемое значение "123.0"

(1.11e+1).toPrecision( 3 ); // возвращаемое значение "11.1"
(1.11e+1).toPrecision( 2 ); // возвращаемое значение "11"
(1.11e-1).toPrecision( 3 ); // возвращаемое значение "0.111"
(1.11e-1).toPrecision( 2 ); // возвращаемое значение "0.11"
JavaScript Number