Десятичные разделители и интернационализация

🚨 Важная заметка о десятичных разделителях и локализации 🚨

Сегодня наткнулся на пост Джоуста Хелберга, который напомнил о ключевой ошибке в работе с числами: не используйте три цифры после запятой, если это может вызвать путаницу между десятичным разделителем и разделителем тысяч! Например, в России запятая (`,`) используется для дробей, а пробел или точка (`.`) — для тысяч. Если написать `123,456`, это может быть прочитано как 123.456 (тысячи) или 123,456 (дроби).

💡 Совет:

  • В разработке ПО всегда используйте локализованные библиотеки для ввода/вывода чисел.

  • Избегайте кастомных проверок символов (например, разрешайте и запятую, и точку).

  • Тестируйте с разными региональными настройками!

📖 История-предупреждение:
В 2006 году на курсах во Франции из-за конфликта разделителей (в США — `.`, в ЕС — `,`) ПО полностью сломалось. Система проверяла ввод на наличие только точек, а парсер ожидал запятых. Участникам пришлось менять настройки ОС, чтобы продолжить. Позорно, но поучительно!

🛑 Главный вывод:
Никогда не предполагайте, что разделители универсальны. Даже если кажется, что «все и так знают» — локализация всегда преподносит сюрпризы. Используйте проверенные инструменты, а не самописные решения!

👉 Пример для России:

  • Правильно: `1 000 000,75` (миллион и 75 сотых).

  • Опасно: `1000000.75` — система может прочитать как `1 000 00075`!

Помните: одна маленькая запятая может стоить вам тысяч (в прямом смысле)! 😅

Источник

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