use strict; use warnings; print map { my ($int,$dec)=split /\./,$_*10; $dec = defined $dec && $dec >= 5 ? 1 : 0; sprintf("%.2f\n", ($int+$dec)/10); } (); __DATA__ 1.24 13.25 2.90 2.99 2.92 14 # OUT 1.20 13.30 2.90 3.00 2.90 14.00