Go 把科学计数法字符串转为int64,最大保留精度。

458人浏览 2023-11-17
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),)

推荐文章

GORM 自定义结构体关联的数据库表名称和自定义结构体字段对应的数据表字段名
2021-02-23
KChatRoom在线多人聊天室,项目是使用Websocket和Gin框架基于Golang开发的在线聊天室
2021-05-17
Gin框架下获取所有路由信息
2021-07-14
搜索文章