Вы можете использовать «sprintf» в сочетании с «eval».
my $num = eval sprintf('%.3f', $raw_num);
Например:
#!/usr/bin/perl
my @num_array = (
0, 1, 1.0, 0.1, 0.10, 0.11, 0.111, 0.1110, 0.1111111
);
for my $raw_num (@num_array) {
my $num = eval sprintf('%.3f', $raw_num);
print $num . "\n";
}
выходы:
0
1
1
0.1
0.1
0.11
0.111
0.111
0.111