对不起,我的坏名称。我很混乱地解释1行的标题。 这是我的问题:使用bc计算bash,并舍入浮点数
echo "scale=0;9 * 150 + 8.092 * 560 + 3.181" | bc
,而不是领
但是,我得到的输出
5884.701
有人吗?
对不起,我的坏名称。我很混乱地解释1行的标题。 这是我的问题:使用bc计算bash,并舍入浮点数
echo "scale=0;9 * 150 + 8.092 * 560 + 3.181" | bc
,而不是领
但是,我得到的输出
5884.701
有人吗?
据我所知,只有部门使用scale
给出的信息。
echo "scale=0; (9 * 150 + 8.092 * 560 + 3.181)/1" | bc
将回显5884,因为整数部分(商!)只被采取。为了得到你想要的结果(圆形),您可以使用:
echo "scale=0; ((9 * 150 + 8.092 * 560 + 3.181)+0.5)/1" | bc
注意,这种方法不会为负数工作!看到这篇文章:https://unix.stackexchange.com/a/89843
这是正确的结果。 bc的手册页说明如何在这里应用比例缩放:
由于您将给定比例乘以/添加多个数字,结果将具有不同比例。
不尽然;如果表达式恰好是精确整数,则不需要添加1。 (当然,对于任意浮点表达式来说,发生这种情况的几率非常低)。 – chepner
@chepner:好点,谢谢。我有点改进了。 – fjellfly