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
维基百科称这种舍入方式为“四舍六入五取偶”:默认情况下,IEEE 754 计算函数和运算符使用此舍入模式。
为什么 C、Perl、Ruby 和 bash 默认使用此舍入方式,而 Haskell 不使用? 这是一种传统或标准吗? 如果是标准,为什么这些语言使用此方法,而 Haskell 则不使用? 四舍六入五取偶的意义是什么?