go 浮点数问题

fmt.Println(0.1 + 0.2) // 0.3
fmt.Println(float64(0.1) + float64(0.2)) // 0.30000000000000004

这两种浮点计算的区别是什么?

阅读 2.3k
1 个回答

精度不一样,一个是32位,一个是64位,浮点数在计算机里本来就是近似表达的,所以出现偏差是正常的,有可能是32位出误差,有可能64位出误差,取决于你用的那个数。 实际上,你这个例子和go无关,所有的语言都会得到得到类似的结果。

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