デフォルトでは、cmをインチに変換する必要がありますが、cm単位の領域を2.54で割ってこれを実行しようとしています。
しかし、私はそれを動作させることはできません。
echo "please enter width and then height"
read width
read height
area=$(($width * $height))
inchesarea=$((area / 2.54))
echo $area
echo $inchesarea
これを使うべきですかbc
?
答え1
これもできますが、定数なので、次のようにしても機能します。
r=$(((area*10000)/254)) ; printf %d.%d ${r%??} ${r#${r%??}}
これは大きな数字(例えば20桁以上)を扱うときに少し難しいことを引き起こしますが、多くの場合許容されます。
これは自動的に結果を小数点以下の2桁に制限して丸めます。結局乗算した後は小数点ではありません。次に結果を文字列として扱います。まず、結果から最後の2文字を削除し、小数点数字を挿入して再度追加します。
POSIX 移植可能でなければなりません。