为了账号安全,请及时绑定邮箱和手机立即绑定

在“golang”float64乘法上计算高精度错误的正确方法是什么

在“golang”float64乘法上计算高精度错误的正确方法是什么

Go
largeQ 2022-01-17 19:52:52
当将 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 个单位。但是,例如,如果您正在处理货币,最好不要使用浮点数,并将所有内容保存为美分(在美国)或数量(最低面额的货币)。


查看完整回答
反对 回复 2022-01-17
  • 1 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信