go中的十进制后打印两位数

时间:2014-02-16 06:18:19

标签: go decimal

我希望在使用GO语言进行舍入后打印小数点后的两位数字。 例如1.222225应打印为1.22 1.356应打印为1.36

我该怎么做?

3 个答案:

答案 0 :(得分:22)

你可以写:

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

(见http://golang.org/pkg/fmt/。)

答案 1 :(得分:5)

如果您使用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

答案 2 :(得分:0)

您可能希望使用固定.00精度的Decimal64p2十进制类型 - https://github.com/strongo/decimal

fmt.Printf("%.1f", 1.346)相比,它将正确舍入。

存储确切金额是有效的。