Your skill will accomplishwhat the force of many cannot PerlMonks

### Perl rounder...

by abaxaba (Hermit)
 on Apr 08, 2002 at 21:05 UTC Need Help??
 Description: Just a little hack to round numbers. Strips leading zeros, pads the precision of you want more places then your decimal length...
```
#!/usr/bin/perl

main();
sub main
{
my (\$num,\$prec)=@ARGV;
my (\$mant,\$dec) = split (/\./,\$num);
\$dec=\$dec?\$dec:"0";
\$mant=~s/^(-?)0+/\$1/;
\$mant=!\$mant?0:\$mant;
(\$prec,\$dec)=\$prec==0?(\$prec,undef):(\$prec+1,substr(\$dec,0,\$prec+1
+));
\$dec=~s/\$dec/length(\$dec)<\$prec?\$dec."0"x(\$prec-length(\$dec)):\$dec
+/e;
my \$round = join ("",(\$mant,length(\$dec)?".":"",round(\$dec)));
output (\$round);
}
sub round
{
my \$dec=shift;
\$dec=~s/(\d)(\d)\$/\$2<5?\$1:\$1+1/e;
\$dec;
}

sub output
{
print "Round = ",shift,"\n";
}

```
Replies are listed 'Best First'.
Re: Perl rounder...
by maverick (Curate) on Apr 08, 2002 at 22:21 UTC
Sorry dude, it's already been done.
```printf("%.\$ARGV[1]f\n",\$ARGV[0]);
printf takes a sting that describes what you want to print. In your case a floating point number (f) with a precision that you specify as the second arg (\$ARGV[1]) using the value in \$ARGV[0]

/\/\averick
OmG! They killed tilly! You *bleep*!!

Re: Perl rounder...
by gav^ (Curate) on Apr 08, 2002 at 22:36 UTC

Create A New User
Node Status?
node history
Node Type: snippet [id://157555]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2018-03-21 03:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When I think of a mole I think of:

Results (263 votes). Check out past polls.

Notices?