当将 golang float64 值与整数相乘时,由于浮点数的存储方式,结果包含高精度错误值。这是一个代码片段,显示了我所指的问题package mainimport ("fmt")func main() { var l float64 = 0.2 fmt.Println("Hello, playground",l*6)}结果是Hello, playground 1.2000000000000002这是同一个游乐场的播放链接是否有标准/最佳实践来解决错误?
1 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
这取决于用例是什么以及您要显示多少位数。你可以这样做:
func main() {
var l float64 = 0.2
fmt.Printf("Hello, playground %.8f",l*6)
}
并且只显示小数点后 8 个单位。但是,例如,如果您正在处理货币,最好不要使用浮点数,并将所有内容保存为美分(在美国)或数量(最低面额的货币)。
- 1 回答
- 0 关注
- 325 浏览
添加回答
举报
0/150
提交
取消