向上舍入 bc 刻度,而不是用刻度或 printf 向下舍入



我正在使用 bc 和 scale 来计算表达式,但我希望它向上舍入而不是向下舍入。最简单的方法是什么?

$ read exp
5+50*3/20 + (19*2)/7
$ echo "scale=3; $exp" | bc -l
17.928

但是我想要的答案是17.929

宁愿答案是我答案的补充,而不是不同的东西。谢谢

以下是我尝试过的一些方法:

$ echo "scale=4; ($exp+0.0005)" | bc -l
17.9290
$ echo "scale=3; ($exp+0.0005)" | bc -l
17.9285

但是,我希望17.929作为答案,最后没有零。

通过使用printfscaling factor作为3scaling factor bc作为4并在表达式中添加0.0005来解决它:

printf "%.3fn"  $( echo "scale=4; $exp+0.0005" | bc -l ) 

相关内容

  • 没有找到相关文章

最新更新