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

输出是

2

它应该在哪里

2.8415

为什么我正在使用精度会丢失bc

4

3 回答 3

7

试试这个(易于重复使用,您只需要记住在数学表达式前面加上scale=N):

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

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

man bc | less +/^' *scale \(\s*exp
于 2013-04-03T17:36:38.837 回答
4

您可以加载数学库: bc -l

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

输出是

2.84153005464480874316
于 2013-04-04T19:29:26.947 回答
0

您可以使用 awk 获得更好的算术:

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

输出: 2.8415

于 2013-04-03T17:42:22.533 回答