Сегодня я наткнулся на совет Йоста Хелберга в Mastodon:
🚨 TIL: Не используй три цифры после запятой в отчётах! Люди могут спутать десятичный разделитель с разделителем тысяч. Лучше указывать 2 или 4 знака — даже если это неточно, это предотвратит ошибки в 1000 раз! 💡
Я обычно указываю четыре знака, но не задумывался о проблеме разделителей.
В разработке ПО 🔧 всегда используй библиотеки для форматирования чисел по локальным стандартам. Игнорирование этого может привести к катастрофе. Пример? История моего позора в Бордо!
Стыд в Бордо 🇫🇷
В 2006 году мы с Питером Толлом проводили курс по байесовскому дизайну клинических испытаний. Часть программы — демонстрация софта, который моя команда создала в MD Anderson.
Через пару минут после начала презентации я понял: у аудитории софт не работает! 😱
Причина? США и Франция используют противоположные разделители:
- США: `3.14` (десятичная точка)
- Франция: `3,14` (десятичная запятая)
Я извинился и попросил вводить числа в американском формате. Не помогло! 💥
Оказалось, мы использовали Windows API для парсинга (он учитывает локальные настройки), но написали кастомную валидацию, которая разрешала только цифры и точки. Ой! 🙈
Участники оказались в ловушке:
- Валидация отвергала `3,14` (французский формат)
- Парсер не принимал `3.14` (американский формат)
Решение? Сменить локаль ОС на США. 😅
Аудитория отнеслась с пониманием — сказали, что это частая проблема. Так я начал курс с унижения, но дальше всё прошло отлично.
📌 Вывод: Никогда не изобретайте велосипеды для работы с числами! Доверьте это проверенным библиотекам.