Вебсправочник
Справочник JavaScript

Number.parseFloat(): разбор числового начала строки

Number.parseFloat читает допустимое числовое начало строки и возвращает число. Он не проверяет, что вся строка целиком является числом, поэтому подходит не для любой валидации ввода.

Назначение

Number.parseFloat читает допустимое числовое начало строки и возвращает число. Он не проверяет, что вся строка целиком является числом, поэтому подходит не для любой валидации ввода.

Как это работает

Начальные пробелы пропускаются, десятичный разделитель в этом формате — точка. Разбор останавливается на неподходящем символе. Если числового начала нет, получается NaN.

Пример

console.assert(Number.parseFloat(" 12.5px") === 12.5);
console.assert(Number.parseFloat("12,5") === 12);
console.assert(Number.isNaN(Number.parseFloat("px12")));
console.assert(Number.parseFloat("2e3") === 2000);
console.assert(!Number.isFinite(Number.parseFloat("Infinity")));
console.assert(Number.isNaN(Number("12.5px")));
console.log("Числовой префикс отличается от проверки всей строки");

Что должно получиться

Строка с единицей измерения даёт числовой префикс, а десятичная запятая обрывает разбор. Сравнение с Number показывает, что разные операции преобразования имеют разные правила.

Граница применения и частая ошибка

Не используйте parseFloat как готовый разбор локализованной суммы. Ввод с запятой может превратиться в другое число без ошибки. После разбора отдельно проверяйте конечность, диапазон и требования к формату исходной строки.

Самостоятельная проверка

Составьте набор строк: пустая, с пробелами, с точкой, с запятой и с суффиксом. Для каждой запишите желаемое поведение вашей формы. Затем выберите явный алгоритм, который не принимает лишние символы случайно.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.