1

こんにちは、次のコードを使用して浮動小数点精度を生成しようとしています

数値1=0 数値2=0 演算子=+

printf "%0.2f\n" result=$(( number1 $operator number2 ))

コードは printf なしで動作しますが、負の (-) 計算と浮動小数点を実行する方法がわかりませんか?

4

2 に答える 2

1

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 ))
于 2013-01-19T01:42:33.990 に答える
0

結局、私はそれを理解しました!

result=$(echo "scale=4; (( $number1 $operator $number2 ))" | bc)
于 2013-01-19T02:13:58.817 に答える