golang如何四舍五入到2位小数
golang如何四舍五入到2位小数
- 仅用于显示:fmt.Sprintf
- 得到 float64 类型的四舍五入结果:math.Round
- 对金融/高精度场景:使用十进制库(推荐)
需要引入第三方依赖(例如 shopspring/decimal)。
总结:只为显示:用 fmt.Sprintf(“%.2f”, v)。
需要数值结果用于计算且对微小浮点误差可接受:用 math.Round(v*100)/100 或通用 Round 函数。
对十进制精度敏感(金额/金融):用十进制库(如 shopspring/decimal)或采用定点整数存储
math.Round(val*100) / 100 方案
-
性能最优:
纯数学运算,无字符串操作开销
无内存分配,直接在栈上计算 -
精度可靠:
使用 math.Round 确保标准的四舍五入
避免浮点数精度问题 -
代码简洁:
一行代码,逻辑清晰
函数名简短明了 -
Go 社区标准:
这是 Go 开发者最常用的方式
在各大开源项目中广泛使用 -
可扩展性好:
如果需要保留3位小数,只需改为 val*1000 和 /1000
可以轻松创建 roundToN(val, n) 通用函数