我正在使用 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
作为答案,最后没有零。
通过使用printf
的scaling factor
作为3
,scaling factor
bc
作为4
并在表达式中添加0.0005
来解决它:
printf "%.3fn" $( echo "scale=4; $exp+0.0005" | bc -l )