Yes, you can certainly do this without using
printf or
sprintf. Number can be treated as string in perl. I will provide a simple regular expression solution since nobody has thought about it yet. ;-)
#!/usr/local/bin/perl -w
use strict;
my $xx = 12000/1000; # wanted result is 12.0
my $yy = 12678/1000; # wanted result is 12.7 - rounded up
print "\$xx = ", rounding_with_regex($xx), "\n";
print "\$yy = ", rounding_with_regex($yy), "\n";
sub rounding_with_regex
{
my $num = shift;
$num += 0.05; # want to round up (as number)
$num =~ s/\.(\d).*/.$1/; # perform the rounding (as string)
return $num;
}
And the output is exactly as required -
$xx = 12.0
$yy = 12.7