2016-04-29 18 views
2
echo 2 9|awk '{printf("%.0f\n",$2/$1)}' 
4 

結果は4です。awkでの丸め印刷

しかし、

echo 2 3|awk '{printf("%.0f\n",$2/$1)}' 
2 

結果は2

のはなぜですか?誰が私に教えることができますか?

+1

浮動小数点数について:http://floating-point-gui.de/formats/fp/ – hek2mgl

+0

これは一貫して奇妙です。シェルプロンプトから 'printf '%.0f \ n' 0.5 1.5 2.5 3.5' – ghoti

+0

@ hek2mglありがとう!非常に有益! :) – ghoti

答えて

1

浮動小数点数は抽象的な数字ではなく、常に正確に値を表すとは限りません。

この質問の回答は「floating point calculations in awk」という問題があります。