gpt4 book ai didi

go - 如何在go中很好地显示 float

转载 作者:数据小太阳 更新时间:2023-10-29 03:03:32 25 4
gpt4 key购买 nike

我希望能够显示用 math/big 创建的非常大的 float .

  • 如果没有小数,则不需要添加.000
  • 仅添加必要的小数位数(显示1.1234 而不是1.123400)
  • 精度高(精确到十位小数)

https://play.golang.org/p/CulS5wXxzGq

coef := new(big.Float).SetPrec(4096)
coef.SetString("1000000000000000")
a := new(big.Float).SetPrec(4096)
a.SetString("1")
a.Quo(a, coef)
fmt.Printf("%.100g\n", a)
// 1e-15
// was expecting: 0.000000000000001

b := new(big.Float).SetPrec(4096)
b.SetString("1234.00")
fmt.Printf("%.100g\n", b)
// 1234.00
// looks good

c := new(big.Float).SetPrec(4096)
c.SetString("1234.001000")
fmt.Printf("%.100g\n", c)
// 1234.001000
// looks good

最佳答案

有一个Text() big.Float 的方法,我认为它可以满足您的需求。如果传递负精度,它将使用尽可能多的数字来表示该值,但不会更多。尝试:

func format(x *big.Float) string {
return x.Text('f', -1)
}

这会给你:

0.000000000000001
1234
1234.001

关于go - 如何在go中很好地显示 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48828106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com