Perl Monk, Perl Meditation PerlMonks

### How to round and keep floating digits

by juo (Curate)
 on Oct 09, 2002 at 21:03 UTC Need Help??
juo has asked for the wisdom of the Perl Monks concerning the following question:

Does anybody know how to perform roundings but at the same time convert integers to float using the rounding parameters. I have been using Math::Round for that purpose however it does not add zeroes. See example below.

```#!/perl/bin -w

use strict;
use Math::Round; # Not standard with Perl delivered

my @number = qw(3 3.555 3.222334 3.4 1 0);

for my \$float(@number) {
\$float = nearest(.001, \$float);
print "\$float\n";
}

__END__

Result of Math::Round
3
3.555
3.222
3.4
1
0

This is what I want to get

3.000
3.555
3.222
3.400
1.000
0.000

Replies are listed 'Best First'.
Re: How to round and keep floating digits
by Zaxo (Archbishop) on Oct 09, 2002 at 21:16 UTC

You want printf or sprintf:

```my @number = qw(3 3.555 3.222334 3.4 1 0);

for my \$float(@number) {
\$float = nearest(.001, \$float);
printf "%.3f\n", \$float;
}

After Compline,
Zaxo

Re: How to round and keep floating digits
by BrowserUk (Pope) on Oct 09, 2002 at 21:18 UTC

Use printf "%5.3f\n", \$float;

Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!
the following worked with perl, no need to use bash printf ("\n \t Pass Percentage = %0.2f %\n",\$float); -Prasad

Create A New User
Node Status?
node history
Node Type: perlquestion [id://204052]
Approved by VSarkiss
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2017-08-16 19:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Who is your favorite scientist and why?

Results (272 votes). Check out past polls.

Notices?