Сводка
Функция parseFloat()
принимает строку в качестве аргумента и возвращает десятичное число (число с плавающей точкой)
Синтаксис
parseFloat(строка)
Параметры
строка
- Текстовая строка, из которой вам надо выделить десятичное число.
Возвращаемое значение
Число с плавающей точкой, полученное из строки. Если первый символ не может быть сконвертирован в число, то возвращается NaN
.
Описание
parseFloat
- это высокоуровневая функция, не привязанная ни к одному объекту.
parseFloat
разбирает текстовую строку, ищет и возвращает из нее десятичное число. Если функция встретит знак, отличный от (+ или -), цифр(0-9), разделительной точки, или показателя степени, она вернет значение, предшествующее этому знаку, игнорируя все последующие символы . Допускаются позади и впереди идущие пробелы.
Если первый символ нельзя привести к числовому виду, parseFloat
вернет NaN
.
С точки зрения математики, значение NaN
не является числом в какой-либо системе счисления. Чтобы определить, вернет ли parseFloat
значение NaN
в качестве результата, можно вызвать функцию isNaN
. Если NaN
участвует в арифметических операциях, результатом также будет NaN
.
parseFloat
также может вернуть значение Infinity
("бесконечность"). Вы можете использовать функцию isFinite
, чтобы определить, является ли результат конечным числом (not Infinity
, -Infinity
, или NaN
).
Примеры
parseFloat
возвращает число
Все примеры ниже вернут 3.14
parseFloat("3.14"); parseFloat("314e-2"); parseFloat("0.0314E+2"); parseFloat("3.14какие-нибудь не цифровые знаки");
parseFloat
возвращает NaN
Пример ниже вернет NaN
parseFloat("FF2");
Более строгая функция разбора
Иногда бывает полезно более строго разбирать десятичные числа, например, используя регулярное выражение:
var filterFloat = function (value) { if(/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/ .test(value)) return Number(value); return NaN; } console.log(filterFloat('421')); // 421 console.log(filterFloat('-421')); // -421 console.log(filterFloat('+421')); // 421 console.log(filterFloat('Infinity')); // Infinity console.log(filterFloat('1.61803398875')); // 1.61803398875 console.log(filterFloat('421e+0')); // NaN console.log(filterFloat('421hop')); // NaN console.log(filterFloat('hop1.61803398875')); // NaN
Обратите внимание: это только пример кода; он не принимает правильные числа такие как 1.
или.5
.
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Стандарт | Изначальное определение |
ECMAScript 5.1 (ECMA-262) Определение 'parseFloat' в этой спецификации. |
Стандарт | |
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'parseFloat' в этой спецификации. |
Стандарт | |
ECMAScript 2017 Draft (ECMA-262) Определение 'parseFloat' в этой спецификации. |
Черновик |
Поддержка браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |