代码如下
```golang
var fff float64
fff = 999999999994.999756
```
![QQ图片20201022135539.png](https://static.studygolang.com/201022/45bc1eb9fd41a0ceac9b58abc4b7bbc6.png)
浮点数本来就不精确的,例如用浮点数计算 0.1 + 0.2 不等于0.3 。
建议看看浮点数底层存储的原理:https://www.bilibili.com/video/BV1354y1B7o1
#7
更多评论
1楼 <a href="/user/jian1098" title="@jian1098">@jian1098</a> 请问这是为什么呢,是由于 idea 的显示导致的问题, 还是编码的问题
我希望解决的问题是进行一个小数计算
然后最终结果返回 一个float64 的双精度浮点数
流程如下:
```golang
var fff float64 = 999999999994.999756
var ggg float64 = 2.00010001
fmt.Printf("%.6f \n", fff)
a := decimal.NewFromFloat(fff)
p := decimal.NewFromFloat(ggg)
result, _ := a.Sub(p).Float64()
fmt.Printf("result = %f \n", result)
```
![2222.png](https://static.studygolang.com/201022/ffb750edf91cd47826280278f3cdec3d.png)
#2