This question already has answers here:
Rounding Numbers with bc in Bash
(3个答案)
三年前关闭。
我使用bc和scale来计算表达式,但是我希望它向上取整而不是向下取整。最简单的方法是什么?
然而,我想要的答案是
我宁愿把答案作为我答案的补充,而不是另一个理由。谢谢
以下是我尝试过的一些事情:
然而,我希望
(3个答案)
三年前关闭。
我使用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
作为最后没有零的答案。 最佳答案
通过使用scaling factor
的printf
作为3
,scaling factor
的bc
作为4
并将0.0005
添加到表达式中来解决:
printf "%.3f\n" $( echo "scale=4; $exp+0.0005" | bc -l )
关于bash - 将bc比例向上取整,而不是用scale或printf向下取整,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37403950/
10-10 11:14