2014-02-16 4 views

ответ

9

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

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

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

+0

спасибо..и работал.i использовал fmt.Println() .. так что я не получал правильного ответа –

3

Если вы используете функцию 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

+0

спасибо..извините, у меня нет 15 репутации..так я не могу упрекнуть ур ответ .. в любом случае, спасибо –

0

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

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

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

Смежные вопросы