- 主题:这个结果为什么不对
学习了,那在需要四舍五入的场合,不用bc该用啥?
【 在 snoopyzhao 的大作中提到: 】
: 你没有明白我的意思
: bc 根本不四舍五入,在你前面给的例子中,它的做法是对每一部分进行 scale,然后再加和……我给的那三项,就是你的那个式子中的三项的 scale 后的结果
--
FROM 216.240.30.*
哈,bc还不如bash的printf,简直是耻辱。
【 在 eskimo1024 的大作中提到: 】
: 不懂 bc 的逻辑,换 awk 解决的
: awk "BEGIN {printf \"%.3f\n\", $line}"
: bc 的四舍五入逻辑有点怪,奇数不进位,偶数进位。
: ...................
--
FROM 216.240.30.*
之前眼拙,没看到,谢谢提醒。
【 在 eskimo1024 的大作中提到: 】
: 我回帖给了解决办法啊~
: bc -l
: 20位有效数字,再用 printf 做四舍五入
: ...................
--
FROM 216.240.30.*
直接扔尾巴肯定不如四舍五入精确吧?
对了,刚才突然想起来,如果bc做不到四舍五入,那就有点儿鸡肋了。
整个儿的计算由printf完成不香吗?
【 在 eskimo1024 的大作中提到: 】
: 任意精度,够酷了,直接扔了尾巴图省事吧。
: 四舍五入又不是啥好东西。
: 哈哈,我屁股歪了。
: ...................
--
FROM 216.240.30.*
估计兄台是搞高性能计算的,我之前都没听过“四舍六入五成双”的说法,孤陋寡闻了。
谢谢您的分享。
【 在 eskimo1024 的大作中提到: 】
: printf 没有任意精度,取决于 double float 的精度
: 我在 bc 的 manual 里没找到明确的取舍规则,如果补上就好了。
: 所以正确的用法是,先用高精度,再按要求截取。
: ...................
--
FROM 216.240.30.*