求助 float64 赋值 999999999994.999756 精度丢失?

zhengsh · · 2274 次点击
打印格式的问题,你用 fmt.Printf("%.6f", fff) 打印就能得到正确结果
#1
更多评论
1楼 <a href="/user/jian1098" title="@jian1098">@jian1098</a> 请问这是为什么呢,是由于 idea 的显示导致的问题, 还是编码的问题 我希望解决的问题是进行一个小数计算 然后最终结果返回 一个float64 的双精度浮点数 流程如下: ```golang var fff float64 = 999999999994.999756 var ggg float64 = 2.00010001 fmt.Printf(&#34;%.6f \n&#34;, fff) a := decimal.NewFromFloat(fff) p := decimal.NewFromFloat(ggg) result, _ := a.Sub(p).Float64() fmt.Printf(&#34;result = %f \n&#34;, result) ``` ![2222.png](https://static.studygolang.com/201022/ffb750edf91cd47826280278f3cdec3d.png)
#2
fmt.Printf输出格式问题呀,%v默认精度4,%f默认精度6,自定义精度就是%.精度f
#3