http://qs321.pair.com?node_id=718178

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

I found a odd question when i wanna round a float number
with Perl buildin function "sprintf" my code is
use warnings; use strict; my $price1 = sprintf("%.1f",100.550); my $price2 = sprintf("%.0f",100.50); print "$price1\n"; # price1 has rounded print "$price2\n"; # but price2 hasn't , Why?
Of course, i can use the manual round function like some referrence:
sub round { my $f = @_; return int($f + .5); }
But the question is Why $price1 has been rounded and price2 has not been rounded?