面试题答案
一键面试package main
import (
"fmt"
"math/big"
)
func main() {
num1 := big.NewFloat(1.1)
num2 := big.NewFloat(2.2)
result, _ := num1.Add(num1, num2).Float64()
fmt.Println(result)
}
实现原理:在Go语言中,math/big
包提供了高精度算术的支持。big.Float
类型可以表示任意精度的浮点数。上述代码首先使用big.NewFloat
函数将两个浮点数1.1和2.2转换为big.Float
类型,然后使用Add
方法对这两个高精度浮点数进行加法运算,最后通过Float64
方法将高精度计算结果转换回普通的float64
类型并输出。这种方式通过使用高精度运算,避免了普通float64
类型因精度问题导致的计算不准确。