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? #### sub round { my $f = @_; return int($f + .5); }