GNUのbashのを丸め、バージョン4.2.24:奇妙な "半分でもする" とは、異なる言語で
$> printf "%.0f, %.0f\n" 48.5 49.5
48, 50
のRuby 1.8.7
> printf("%.0f, %.0f\n", 48.5, 49.5)
48, 50
のPerl 5.12.4
$> perl -e 'printf("%.0f, %.0f\n", 48.5, 49.5)'
48, 50
GCC 4.5.3:
> printf("%.0f, %.0f\n", 48.5, 49.5);
48, 50
GHC、バージョン7.0.4:
> printf "%.0f, %.0f\n" 48.5 49.5
49, 50
ウィキペディアは丸めのこの種のround half to evenと呼ばれていることを述べている:
これは、IEEE 754の演算関数と演算子で使用されるデフォルトの丸めモードです。
C、Perl、Ruby、bashではこの丸めがデフォルトで使用されますが、Haskellではこの丸めが使用されないのはなぜですか?それは、伝統や標準のいくつかの並べ替え
ですか?それが標準の場合、なぜそれらの言語で使用され、Haskellでは使用されていないのですか?半分を丸める点は何ですか?
を使用するようにハードコードされている場合は2つの実装の間でのみ有意差があります。これはIEEE 754標準の一部です。 –
@Keith Irwin、私は彼がどの標準を知りたかったと思う。うまくいけば関連するリンクでそれを答えとして投稿してみませんか? – ikegami
ドミトリー:質問に「IEEE 754」と具体的に言及しています。これが基準です。 – Gabe