Bash - 数学:返回整数而不是浮点数

Bash - 数学:返回整数而不是浮点数

Bash在除法时返回值4而不是。并且在执行时返回而不是。4.221/5369 * (21/5)37.8

echo "$(( 21/5 ))"
4
    
echo "21/5" | bc
4

同样9 * ( 21/5 )返回36但它应该是37.8

y = 9;
num_lines = 21;
w = 5;

let value="$y * ($num_lines/$w)"

echo $value
36

答案1

尝试类似

$ echo "21/5" | bc -l
4.20000000000000000000

$ echo "$y * ($num_lines/$w)" |bc -l
37.80000000000000000000

设置小数点限制的方法如下,小数点后 2 位

 $echo "scale=2; $y * ($num_lines/$w)" | bc -l
 37.80

对于小数点后 3 位,只需改变刻度数字。

$ echo "scale=3; $y * ($num_lines/$w)" | bc -l
37.800

相关内容