Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Ожидание, что `fmt.Sprint(0.1+0.2)` даст "0.3"

Что делают:
Печатают сумму и удивляются "0.30000000000000004".

Почему ошибка:
fmt.Sprint выводит число с достаточной точностью, чтобы при обратном чтении получить то же самое двоичное представление. Для чисел с погрешностью это даёт длинные хвосты.

Как правильно:
Использовать форматирование с фиксированной точностью:

s := fmt.Sprintf("%.2f", 0.1+0.2) // "0.30"

Загрузка...