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

go float 精度丢失问题

go float 精度丢失问题

眼眸繁星 2019-05-14 09:36:26
一些特定的小数用于计算总是出现精度问题,不知道go语言是怎么处理这个问题的.搞不懂的是第一个两个变量a,b都是同一个类型,为什么相减还是会出现精度问题packagemainimport"fmt"funcmain(){a:=143.66b:=14.55c:=a-b//c=c*100fmt.Println(c)fmt.Printf("s=%T\n",a)fmt.Printf("s=%T\n",b)fmt.Printf("s=%T\n",c)d:=1129.6fmt.Println((d*100))}打印的值如下:129.10999999999999s=float64s=float64s=float64112959.99999999999
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

这个和语言无关,所有的语言都是这样的,只要是float或者double类型都有这个问题,因为他们本身就是有误差的,如果要做到无误差,Java有个BigDecimal可以用。
                            
查看完整回答
反对 回复 2019-05-14
  • 2 回答
  • 0 关注
  • 1190 浏览
慕课专栏
更多

添加回答

举报

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