使用bc进行bash计算,并向上舍入浮点数

时间:2015-09-26 12:53:54

标签: bash shell

抱歉我的头衔不好。我很困惑地在一行解释标题。 这是我的问题:

echo "scale=0;9 * 150 + 8.092 * 560 + 3.181" | bc

而不是

  

5885

但是,我得到了输出

  

5884.701

任何?

2 个答案:

答案 0 :(得分:2)

据我所知,只有部门正在使用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

答案 1 :(得分:0)

这是正确的结果。 bc的手册页解释了扩展如何适用于此:

由于您使用给定比例乘以/添加多个数字,结果将具有不同的比例。