在Go语言中如何打印小数点后两位

15
我想在GO语言中对数字进行四舍五入并保留两位小数输出.. 例如,1.222225应该打印为1.22 1.356应该打印为1.36 我该怎么做呢?
3个回答

27

谢谢,它起作用了。我之前使用的是 fmt.Println(),所以没有得到正确的答案。 - user3048631

8
如果您使用 fmt.Printf 函数,可以在格式化字符串中使用语法以按给定的精度打印浮点数,如下所示。 一般的语法是% [数字] f
举个例子: fmt.Printf(“%.2f”1.2222225)//输出:1.22 fmt.Printf(“%.2f”,1.356)//输出:1.36 需要注意的一点是不进行四舍五入: fmt.Printf(“%.1f”,1.346) 将输出1.3,而不是1.4。 另外,负数将按预期方式处理: fmt.Printf(“%.2f”,-1.356)//输出:-1.36

抱歉,我没有15个声望值,所以无法为您的答案点赞。不管怎样,谢谢。 - user3048631

0

你可能想要使用带有固定 .00 精度的 Decimal64p2 十进制类型 - https://github.com/strongo/decimal

fmt.Printf("%.1f", 1.346) 相比,它会正确地四舍五入。

它非常适合存储精确的货币金额。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接