bash + 数値からパーセンテージを計算する方法

bash + 数値からパーセンテージを計算する方法

数値でパーセントを計算する方法

例えば、私たちは

number=248

私たちは$ numberの80%が何であるかを知りたいです。

それでは、Bashではどのように計算しますか?

予想出力198(正確には198.4ですが、下降したい)

答え1

bash浮動小数点計算はできませんが、精度があまり必要ない場合は、次のように偽にすることができます.

$ number=248
$ echo $(( number*80/100 ))
198

答え2

Bash自体は浮動小数点演算を処理できません。最良の方法は、bc次のように使用することです。

$ bc <<<"248*80/100"
198

シェル(bash、sh)は整数のみを計算できます。

$ bash -c 'echo $((248*80/100))'
198

ksh93は浮動小数点演算を処理できます。

$ ksh -c 'echo $((248*0.8))'
198.4

小数点以下 0 の形式:

$ ksh -c 'printf "%.0f\n" "$((248*0.8))"'

zshは別の方法で行います。

$ zsh -c 'echo $((248*0.8))'
198.40000000000001

ただし、フォーマットすると正しい値になります。

$ zsh -c 'printf "%.0f\n" "$((248*0.8))"'
198

または、awkで次のことを実行できます。

$ awk -vn=248 'BEGIN{print(n*0.8)}'
198.4

または小数点が0の場合:

$ awk -vn=248 'BEGIN{printf("%.0f\n",n*0.8)}'
198

答え3

そしてawk表現する:

$ number=248
$ awk -v n="$number" 'BEGIN{ print int(n*0.8) }'
198

答え4

合計が正数で最大の整数を超えないと仮定すると、pパーセンテージは次のようになります。np*n + 100pn

丸め:

$(( p*n / 100 )) 

最も近い値または半分に丸めます。

$(( (p*n+50) / 100 )) 

集める:

$(( (p*n+99) / 100 )) 

関連情報