こんにちは、次のコードを使用して浮動小数点精度を生成しようとしています
数値1=0 数値2=0 演算子=+
printf "%0.2f\n" result=$(( number1 $operator number2 ))
コードは printf なしで動作しますが、負の (-) 計算と浮動小数点を実行する方法がわかりませんか?
Bash は浮動小数点計算をサポートしていないため、演算対象の数値に、必要な小数と同じ数のゼロを掛けます。
# 10.321 - 123.01
result=$(( 10321 - 123010 ))
echo ${result:0:-3}.${result:${#result} - 3}
または、次のような別のツールを使用してこれを行うだけですbc
。
echo "scale=2; 10.321 - 123.01" | bc
また、使用した構文は無効です。あなたが持っている必要があります:
printf "%0.2f\n" $(( number1 $operator number2 ))
結局、私はそれを理解しました!
result=$(echo "scale=4; (( $number1 $operator $number2 ))" | bc)