golang 不同类型之间计算的精度问题怎么解决?

在整型(int)与浮点型(float64)之间的计算时,会遇到计算精度问题,如下:

    var a int = 1
    var b float64 = 0.8
    c := float64(a) - b
    fmt.Println(c)

运行结果:

    0.19999999999999996

而不是预期的结果;

初学go,请教如何解决。

阅读 8k
2 个回答

浮点数精度问题,在哪种语言都存在,只能靠自己设计来避免,比如统一数据类型,像价格肯定不可能存整数类型,如果确实已经存在了大量的历史数据,惯用的金额保留6位小数啊,展示2位啊各种吧,当然会有一个差异产生的,正常范围就行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题