echoとprintfの結果の違い

echoとprintfの結果の違い

次のコードで他の結果が表示されるのはなぜですか?

read a
printf "%.3f\n" $(bc -l <<< "$a")

結果:17.929 そして

read a
echo "scale=3; $a" | bc -l

結果:17.928

私の入力表現は5+50*3/20 + (19*2)/7

彼らは同じことをしているように見えますが、最終結果は異なります。なぜ?

変更(使用エコ)上記の2番目のスニペットでも、最初のスニペットと同じ結果が得られますか?

ベストアンサー1

echoとの違いではなく、printfとの数値処理の違いです。printfbc

計算された数字を出力するprintfのではなく、最後の数字を丸めると思います。bc

どちらの方法でも、より多くの数字を出力することでこれを確認できます。

おすすめ記事