新手问题 sprintf 格式化四舍五入的坑?

Jao · 2018年01月17日 · 最后由 tinyfeng 回复于 2018年01月18日 · 3227 次阅读

irb(main):009:0> sprintf("%.6f",1.2355235) => "1.235523"

irb(main):010:0> sprintf("%.6f",1.2355236) => "1.235524"

很像前台 to_Fixed 四舍六入五成双 有没有好的解决方法?

irb(main):013:0> sprintf("%.6f",1.2355235) => "1.235523" irb(main):014:0> sprintf("%.6f",2.2355235) => "2.235524" 这次更诧异

"#{1.2355236.round 6}"

进度损失,转化为整数四舍五入再转化为小数就不会出现这个问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号