FRONT | Фронтенд | JavaScript | CSS | TanStack Start 1.0 | JPEG XL | Next.js 16.4 | TypeScript в Rust | Remix 3 | React 19.3 | WebMCP | Playwright 1.64 | Base UI 1.9 | React Aria 1.22 | Deno | Bun
IT и технологии · 22 октября 2026 г.
parseFloat('1 250,50') отдаёт 1. Ни NaN, ни исключения: парсер дочитал до первого пробе...
parseFloat('1 250,50') отдаёт 1. Ни NaN, ни исключения: парсер дочитал до первого пробела и выбросил остаток. Единица уходит дальше как настоящая сумма. Такую строку производит наш же код. Intl.NumberFormat('ru-RU') разделяет разряды неразрывным пробелом, и его вывод, вернувшись в parseFloat, даёт ту же единицу. Лечится не угадыванием смысла, а нормализацией на входе. Снять пробелы всех видов, запятую сменить на точку. Если после суммы ещё цифры, как в «1 руб. 50 коп.», — остановиться и попросить ввести однозначно. Копейки считать целыми.