🚨 Важная заметка о десятичных разделителях и локализации 🚨
Сегодня наткнулся на пост Джоуста Хелберга, который напомнил о ключевой ошибке в работе с числами: не используйте три цифры после запятой, если это может вызвать путаницу между десятичным разделителем и разделителем тысяч! Например, в России запятая (`,`) используется для дробей, а пробел или точка (`.`) — для тысяч. Если написать `123,456`, это может быть прочитано как 123.456 (тысячи) или 123,456 (дроби).
💡 Совет:
- В разработке ПО всегда используйте локализованные библиотеки для ввода/вывода чисел.
- Избегайте кастомных проверок символов (например, разрешайте и запятую, и точку).
- Тестируйте с разными региональными настройками!
📖 История-предупреждение:
В 2006 году на курсах во Франции из-за конфликта разделителей (в США — `.`, в ЕС — `,`) ПО полностью сломалось. Система проверяла ввод на наличие только точек, а парсер ожидал запятых. Участникам пришлось менять настройки ОС, чтобы продолжить. Позорно, но поучительно!
🛑 Главный вывод:
Никогда не предполагайте, что разделители универсальны. Даже если кажется, что «все и так знают» — локализация всегда преподносит сюрпризы. Используйте проверенные инструменты, а не самописные решения!
👉 Пример для России:
- Правильно: `1 000 000,75` (миллион и 75 сотых).
- Опасно: `1000000.75` — система может прочитать как `1 000 00075`!
Помните: одна маленькая запятая может стоить вам тысяч (в прямом смысле)! 😅