
Баг: Неожиданное округление в `fmt.Sprintf("%.Nf", x)`
Проблема:fmt.Sprintf("%.2f", 2.125) возвращает "2.13", хотя ожидалось "2.12".
Почему так происходит:fmt.Sprintf использует стандартное математическое округление (round half up): если следующая цифра ≥ 5, предыдущая увеличивается на 1. Это не банковское округление и не простое отбрасывание знаков.
Решение:
Если нужно просто отбросить лишние знаки без округления, используйте math.Trunc
Загрузка...