Десятичный разделитель и международные стандарты

Сегодня я наткнулся на совет Йоста Хелберга в Mastodon:
💡 Совет дня: не используйте три цифры после десятичной точки! Люди могут спутать её с разделителем тысяч. Лучше указывать 2 или 4 знака — это снизит риск ошибок в 1000 раз!

Раньше я всегда использовал 4 знака, но не задумывался о проблеме разделителей.
В разработке ПО 🖥️ важно доверять ввод и вывод чисел библиотекам, которые учитывают локальные настройки. Иначе — курьёзы, как в моей истории:

😅 Позор в Бордо (2006)
На курсе по байесовской статистике во Франции я демонстрировал софт, созданный в MD Anderson. Через пару минут стало ясно: у аудитории он не работает!
🚨 Причина: США используют точку как десятичный разделитель (3.14), Франция — запятую (3,14). Я тестировал софт на французской Windows, но с целыми числами, а на лекции ввёл десятичные.

Извинился, попросил аудиторию использовать американский формат. Не сработало!
🔍 Оказалось, Windows API корректно обрабатывал локализацию, но наш кастомный валидатор проверял символы: разрешал только цифры и точки. Французские запятые блокировались, а API игнорировал точки!

💡 Решение: Слушатели временно сменили локаль ОС на США. Они отнеслись с юмором, сказав: «Такое часто бывает». Неловкий старт, но курс прошёл успешно.

📌 Вывод: никогда не изобретайте велосипеды для обработки чисел — доверяйте проверенным библиотекам!

(Пост «Десятичные разделители и интернационализация» впервые опубликован Джоном Д. Куком.)

Источник

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