首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高精度float64乘法高精度误差的正确方法是什么

高精度float64乘法高精度误差的正确方法是什么
EN

Stack Overflow用户
提问于 2016-06-20 06:37:20
回答 1查看 3.2K关注 0票数 7

当将golang float64值与整数相乘时,由于浮点数的存储方式,结果包含高精度的错误值。下面是一个代码片段,它显示了我所指的问题

代码语言:javascript
运行
复制
package main

import (
"fmt"
)

func main() {
        var l float64 = 0.2
    fmt.Println("Hello, playground",l*6)
}

结果是

代码语言:javascript
运行
复制
Hello, playground 1.2000000000000002

下面是同一个游乐场的play链接

有标准/最好的做法来避免错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 06:44:21

这取决于用例是什么,以及要显示多少位数字。你可以这样做:

代码语言:javascript
运行
复制
func main() {
    var l float64 = 0.2
    fmt.Printf("Hello, playground %.8f",l*6)
}

只显示小数点后的8个单位。但是,如果你是在处理货币,例如,你最好不要使用浮标,把所有东西都存为美分(在美国)或数(最低面值的货币)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37915981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档