ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> # 浮点数精度问题 - 前端仅仅是从后端接收一个浮点数值并显示,而没有进行任何数学运算,那么浮点数精度问题通常不会显现得太明显。在这种情况下,前端只需简单地显示后端传递的值,不涉及到浮点数运算,因此就不会引起额外的精度损失。 - 在 Go 语言中,`decimal.NewFromFloat` 函数通常是 `github.com/shopspring/decimal` 包中的一个方法。这个包提供了高精度的十进制浮点数运算。可以使用该包中的 `decimal.NewFromFloat` 方法将 Go 语言的 `float64` 类型的浮点数转换为 `decimal` 类型。 ~~~ func TestFloatAdd(t *testing.T) { num1 := 0.1 num2 := 0.2 num3 := num1 + num2 fmt.Println(num3) } ~~~ - 输出结果 ``` === RUN TestFloatAdd 0.30000000000000004 --- PASS: TestFloatAdd (0.00s) PASS ``` - 结果方案 ``` func TestFloatAdd(t *testing.T) { num1 := 0.1 num2 := 0.2 num3 := decimal.NewFromFloat(num1).Add(decimal.NewFromFloat(num2)) fmt.Println(num3) } ```