Bash

Bash - 數學:返回整數而不是浮點數

  • November 1, 2020

Bash在除法時返回值4而不是。並在做而不是返回時返回。4.2``21/5``36``9 * (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

嘗試這樣的事情

$ 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

引用自:https://serverfault.com/questions/1008821