Javascript.RU

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
Почему так?


Автор: Гость (не зарегистрирован), дата: 7 декабря, 2012 - 16:50
#permalink

чтобы понять ответ на этот вопрос нужно иметь высшее образование и знать а нахера в яваскрипт есть undefined type


Автор: Гость (не зарегистрирован), дата: 14 февраля, 2013 - 15:22
#permalink

Не надо хамить. Не хотите отвечать не пишите!


Автор: Гость (не зарегистрирован), дата: 6 сентября, 2015 - 14:59
#permalink

К чему ты это написал, епт?


Автор: Гость (не зарегистрирован), дата: 7 декабря, 2012 - 16:53
#permalink

потому что разработчикам так захотелось , что они курили в этот момент осталось тайной, а вообще если подумать то логика просматривается (чего нельзя сказать о здравом смысле=3)


Автор: Гость (не зарегистрирован), дата: 18 февраля, 2015 - 01:29
#permalink

parseFloat(Infinity) = Infinity

Думаю, там такой алгоритм
1) вначале приводим параметр к строке
2) затем ищем внутри точки, и берем часть строки до второй точки
(например, parseFloat('0.1.2ю') === 0.1 )
3) затем смотрит, число ли перед нами Number('0.1')

В итоге parseFloat(Infinity) = Infinity

parseInt действует по другому, он ищет первое вхождение цифр, если их нет - то NAN


Автор: Гость (не зарегистрирован), дата: 22 ноября, 2016 - 08:56
#permalink

Infinity дохуя большая чтобы в INT пихаться поэтому NaN


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

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

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


Автор: slavas (не зарегистрирован), дата: 29 августа, 2015 - 03:11
#permalink

parseInt(Infinity) = NaN
parseFloat(Infinity) = Infinity
--------
представьте число в виде x,y. где x и y бесконечное кол-во цифр (1.999 > 1). по этому и логично, что parseInt делает из 999...,999... = 999... , а parseFloat оставляет как есть. думаю именно так.. в таком случае логика существует)


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 15:01
#permalink

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

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


Автор: Lowe (не зарегистрирован), дата: 27 августа, 2024 - 04:26
#permalink

Easy to reference through various sources of documents. Good experience to constantly improve personal knowledge and experience soccer random in practical application. This is really great when following and updating diverse.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
15 + 3 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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