New We are sorting MAX channels into categories and territories. Read the news

parseFloat('1 250,50') отдаёт 1. Ни NaN, ни исключения: парсер дочитал до первого пробела и выбросил остаток. Единица уходит дальше как настоящая сумма.



Такую строку производит наш же код. Intl.NumberFormat('ru-RU') разделяет разряды неразрывным пробелом, и его вывод, вернувшись в parseFloat, даёт ту же единицу.

Лечится не угадыванием смысла, а нормализацией на входе. Снять пробелы всех видов, запятую сменить на точку. Если после суммы ещё цифры, как в «1 руб. 50 коп.», — остановиться и попросить ввести однозначно. Копейки считать целыми.
Views: 5
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go