go精度问题

一个 float32 类型的浮点数可以提供大约 6 个十进制数的精度,而 float64 则可以提供约 15 个十进制数的精度。

var a1 long = 43846793178884500

var a2 float64 = float64(a1)

var a3 long = long(a2)

最终a3结果会是43846793178884496,这是由于a2的精度问题。

如果需要准确的计算,可以使用github.com/shopspring/decimal.git

你可能感兴趣的:(go精度问题)