golang decimal 用什么存
在Go语言中,可以使用float64或big.Float来存储十进制数。
float64是Go语言的内置类型,可以用于存储浮点数。但是由于浮点数的精度有限,可能无法准确表示一些十进制数,特别是在进行精确计算时可能会出现舍入误差。
big.Float则是Go语言标准库中的一个类型,它提供了高精度的十进制浮点数运算。big.Float可以表示任意精度的十进制数,并且提供了许多用于精确计算的方法。
以下是使用float64和big.Float存储十进制数的示例:
import (
"fmt"
"math"
"math/big"
)
func main() {
// 使用float64存储十进制数
var num1 float64 = 0.1
var num2 float64 = 0.2
sum := num1 + num2
fmt.Println(sum) // 输出:0.30000000000000004
// 使用big.Float存储十进制数
num3 := big.NewFloat(0.1)
num4 := big.NewFloat(0.2)
sum2 := new(big.Float).Add(num3, num4)
fmt.Println(sum2) // 输出:0.3
}
在上面的示例中,使用float64进行计算时,由于浮点数的精度限制,得到的结果存在舍入误差。而使用big.Float进行计算时,可以得到精确的结果
原文地址: http://www.cveoy.top/t/topic/iX1g 著作权归作者所有。请勿转载和采集!