shell脚本,其中bc失去精度

时间:2013-04-03 17:35:01

标签: shell math bc

#! /bin/sh
a1=260
a2=9150
echo "$a1 * 100 / $a2" | bc

输出

2

应该在哪里

2.8415

虽然我使用的是bc

,但为什么精度会丢失

3 个答案:

答案 0 :(得分:7)

试试这个(易于重复使用,你只需要记住用scale=N预先计算数学表达式):

$ echo "scale=10; $a1 * 100 / $a2" | bc
2.8415300546

如您所见,您可以根据需要指定比例长度。

man bc | less +/^' *scale \(\s*exp

答案 1 :(得分:3)

您可以加载数学库:bc -l <​​/ p>

#! /bin/sh
a1=260
a2=9150
echo "$a1 * 100 / $a2" | bc -l

输出

2.84153005464480874316

答案 2 :(得分:0)

您可以使用awk进行更好的算术运算:

awk -v a1=260 -v a2=9150 'BEGIN{printf("%.4f\n", (a1 * 100 / a2))}' 

输出 2.8415