Справочник javascript: parseFloat


parseFloat

Синтаксис

parseFloat(strVal)

Аргументы

strVal
строка, представляющая числовое значение

Описание, примеры

Метод parseFloat преобразует строковый аргумент в число с плавающей точкой. Если во время преобразования он обнаруживает неподходящий символ, то заканчивает процесс и возвращает результат.

Допустимы начальные и конечные пробелы.

Если аргумент не может быть преобразован в число - возвращает NaN

Пример: все вызовы вернут 3.14

parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");

var x = "3.14";
parseFloat(x);

parseFloat("3.14more non-digit characters");

Пример: возврат NaN

parseFloat("тест") // NaN

Для более строгого преобразовния строки в число используйте оператор "+". Он возвращает NaN, если строка в точности не является числом.

str = "3.14"
+str == parseFloat(str)

+"3.14abc" // NaN, но
parseFloat("3.14abc") // = 3.14

Автор: Гость (не зарегистрирован), дата: 22 сентября, 2010 - 10:30

#permalink

Хорошобы явно указать:1)что запятая вместо точки приводит к ошибке.
2) что происходит если не цифровой символ внутри 12ф34 - тоже NaN?.
3) Что точка используется всегда независимо от настройки culture операционной системы как, например, в C#.


Автор: Гость (не зарегистрирован), дата: 1 июня, 2011 - 11:56

#permalink

Всё же запятая не приводит к ошибке.
parseFloat как и parseInt сканирует строку по шаблону. Все символы не входящие в шаблон (включая запятую) отбрасываются. NaN выдается только в том случае если первый символ не попал под шаблон. Пробелы в начале строки отбрасываются (может быть и другие пробельные символы, лень тестить:))
parseFloat(34f22)//=34
parseFloat(34,22//=34
parseFloat(34.22)//=34.22
parseFloat(f34.22)//=NaN - первый символ нечисловой
parseFloat(34e2)//=3400
parseFloat(34e2e2)//=3400
parseFloat(34ee2)//=34 - после первой e нет порядка числа.
parseFloat(e2)//=NaN - нет значимой части


Автор: Гость (не зарегистрирован), дата: 2 мая, 2012 - 14:27

#permalink

parseInt(Infinity) = NaN
parseFloat(Infinity) = Infinity
Почему так?


Автор: Ji (не зарегистрирован), дата: 10 декабря, 2014 - 19:39

#permalink

По поводу:
parseInt(Infinity) = NaN
parseFloat(Infinity) = Infinity

по всей видимости потому, что typeof(Infinity) = "number", соответственно в случае с parseFloat() возвращает значение как есть, без преобразований(ну number и number), а в случае с parseInt() пытается преобразовать в целое число, что с точки зрения бесконечности невозможно, а раз невозможно привести к числу - значит это NaN


Автор: спасибо (не зарегистрирован), дата: 17 февраля, 2023 - 06:21

#permalink

Большое спасибо за вашу помощь, однако, если быть до конца честным, я пишу все свои собственные работы, так chained echoes как не хочу тратить деньги на то, что я способен сделать. Однако для тех, кто, например, подрабатывает во время учебы или не хочет тратить деньги на ветер.


 
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum