Выбрать главу

var п = 123456.789;

n.toFixed(0); // ”123457"

n.toFixed(2); // "123456.79"

n.toFixed(5); // "123456.78900"

n.toExponential(1); // "1.2e+5"

n.toExponential(3); // "1.235Є+5"

n.toPrecision(4); // "1.235e+5"

 n.toPrecision(7); // "123456.8"

n.toPrecision(IO);// "123456.7890"

Если передать строку функции преобразования Number(), она попытается разобрать эту строку как литерал целого или вещественного числа. Эта функция работает только с десятичными целыми числами и не допускает наличие в строке завершающих символов, не являющихся частью литерала числа. Функции parseInt() иparseFloat() (это глобальные функции, а не методы какого-либо класса) являются более гибкими. Функция parseInt() анализирует только целые числа, тогда как функция parseFloat() позволяет анализировать строки, представляющие и целые, и вещественные числа. Если строка начинается с последовательности «Ох» или «ОХ», функция parseInt() интерпретирует ее как представление шестнадцатеричного числа.[2] Обе функции, parseInt() и parseFloat(), пропускают начальные пробельные символы, пытаются разобрать максимально возможное количество символов числа и игнорируют все, что следует за ними. Если первый непробельный символ строки не является частью допустимого числового литерала, эти функции возвращают значение NaN:

parseInt("3 blind mice") // => 3

parseFloat("3.14 meters") // => 3.14

parseInt("-12.34") // => -12

parseInt("0xff") // => 255

parseInt("0xFF") // => 255

parseInt("-0xFF") // => -255

parseFloat(".1") // => 0.1

parseInt("0.1") // => 0

parseInt(".1") // => NaN: целые числа не могут начинаться с "."

parseFloat("$72.47"); // => NaN: числа не могут начинаться с "$"

Функция parseInt() принимает второй необязательный аргумент, определяющий основание системы счисления для разбираемого числа. Допустимыми являются значения от 2 до 36. Например:

parselnt("11", 2);  // => 3 (1*2 + 1)

parselnt("ff”, 16); // => 255 (15*16 + 15)

parselnt("zz", 36); // => 1295 (35*36 + 35)

parselnt("077", 8); // => 63 (7*8 + 7)

parselnt("077", 10) // => 77 (7*10 + 7)

3.8.3. Преобразование объектов в простые значения

Преобразование объектов в логические значения выполняется очень просто: все объекты (включая массивы и функции) преобразуются в значение true. Это справедливо и для объектов-оберток: результатом вызова new Boolean (false) является объект, а не простое значение, поэтому он также преобразуется в значение true.

Преобразование объекта в строку и преобразование объекта в число выполняется вызовом соответствующего метода объекта. Все осложняется тем, что объекты в языке JavaScript имеют два разных метода для выполнения преобразований, а также наличием нескольких специальных случаев, описываемых ниже. Обратите внимание, что правила преобразования объектов в строки и числа, описываемые здесь, применяются только к объектам самого языка JavaScript. Объекты среды выполнения (например, определяемые веб-броузерами) могут предусматривать собственные алгоритмы преобразования в числа и строки.

Все объекты наследуют два метода преобразования. Первый из них называется toString(), он возвращает строковое представление объекта. По умолчанию метод toString() не возвращает ничего особенно интересного (хотя эта информация иногда может оказаться полезной, как будет показано в примере 6.4):

вернуться

2

Согласно стандарту ECMAScript 3 функция parseInt() может выполнять преобразование строки, начинающейся с символа «О» (но не «Ох» или «ОХ»), в восьмеричное или десятичное число. Поскольку поведение функции четко не определено, следует избегать использования функции parseInt() для интерпретации строк, начинающихся с «О», или явно указывать основание системы счисления! В ECMAScript 5 функция parselnt() будет интерпретировать строки как восьмеричные числа, только если ей во втором аргументе явно указать основание 8 системы счисления.)