如何将科学计数法字符串转换为big.Int?

时间:2020-03-04 00:20:48

标签: go

在golang中,我在这样的字符串中有大量数字:“ 4.49955000449955e + 24”。

如何将其转换为big.Int?

1 个答案:

答案 0 :(得分:3)

使用big.ParseFloat获取big.Float,然后使用Int方法将其转换为big.Int

flt, _, err := big.ParseFloat(input, 10, 0, big.ToNearestEven)
if err != nil {
    /* handle a parsing error here */
}
var i = new(big.Int)
i, acc := flt.Int(i)

see it on the Go Playground

通过将prec自变量调整为ParseFloat,您可以控制中间浮点数的精度-至少需要72位精度才能使示例输入准确输出(以十个零),但如果您传递0,则默认值为64位。