Печать двух цифр после запятой в

Я хочу напечатать две цифры после десятичного после округления на языке GO.. e.g 1.2222225 следует печатать как 1.22 1.356 должно быть напечатано как 1.36

Как я могу это сделать?

3 ответов


вы можете написать:

fmt.Printf("%.2f", 1.22225)

(см. http://golang.org/pkg/fmt/.)


если вы используете fmt.Printf функция в строке форматирования есть синтаксис,который позволяет печатать поплавки с заданным уровнем точности. Общий синтаксис:%.[numberofdigits]f.

примеры:

fmt.Printf("%.2f" 1.2222225) // output: 1.22

fmt.Printf("%.2f", 1.356) // output: 1.36

одна вещь, чтобы отметить, что раунд не "нести"

fmt.Printf("%.1f", 1.346)

выведет 1.3, а не 1.4. Кроме того, отрицательные числа будут вести себя так, как ожидалось:

fmt.Printf("%.2f", -1.356) // output: -1.36


Вы можете использовать Decimal64p2 тип decimal с фиксированным .00 точность -https://github.com/strongo/decimal

по сравнению с fmt.Printf("%.1f", 1.346) он будет округляться правильно.

он эффективен для хранения точных сумм денег.