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?