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? Какая точка округления до половины?