http://www.perlmonks.org?node_id=991469

ribasushi has asked for the wisdom of the Perl Monks concerning the following question:

Greetings everyone

I am trying to figure out which of the multiple rounding techniques is used by perl's (and I suspect C) printf. I can not find anything that matches on the interwebs. Can anyone explain in detail the output of the following oneliner:

perl -e 'printf "%s => %.1f\n", ("0.${_}5") x 2 for (0..9)' 0.05 => 0.1 0.15 => 0.1 <-- this pair precludes even/odd 0.25 => 0.2 <-- rounding as explanation 0.35 => 0.3 0.45 => 0.5 <-- looks like the threshold of down/up rounding behavior 0.55 => 0.6 0.65 => 0.7 0.75 => 0.8 0.85 => 0.8 <-- except not quite :( 0.95 => 0.9