func convertToInt64(scientificNotation string) (string, error) {
flt, _, err := big.ParseFloat(scientificNotation, 10, 0, big.ToNearestEven)
if err != nil {
return "", err
}
var i = new(big.Int)
i, _ = flt.Int(i)
return fmt.Sprintf("%v", i), nil
}
//调用:
val, err := convertToInt64("2.3930112619968502E+18")
fmt.Println(val, err)
// 输出:
2393011261996850200
上面的代码我输出的是字符串,如果不需要字符串,最后一步取消即可(fmt.Sprintf("%v", i),)