#! /bin/sh
a1=260
a2=9150
echo "$a1 * 100 / $a2" | bc
输出是
2
它应该在哪里
2.8415
为什么我正在使用精度会丢失bc
?
试试这个(易于重复使用,您只需要记住在数学表达式前面加上scale=N
):
$ echo "scale=10; $a1 * 100 / $a2" | bc
2.8415300546
如您所见,您可以根据需要指定比例长度。
看
man bc | less +/^' *scale \(\s*exp
您可以加载数学库: bc -l
#! /bin/sh
a1=260
a2=9150
echo "$a1 * 100 / $a2" | bc -l
输出是
2.84153005464480874316
您可以使用 awk 获得更好的算术:
awk -v a1=260 -v a2=9150 'BEGIN{printf("%.4f\n", (a1 * 100 / a2))}'
输出: 2.8415