in reply to Using (s)printf()

say you have:
$half = 1/2;
and you want to print $half so it appears as:
.500

printf ("%.3f", $half);
gives:
0.500
how do i get rid of that extra zero?

Replies are listed 'Best First'.
Re: Question:
by Anonymous Monk on Mar 13, 2002 at 20:50 UTC
    Use split() to get rid of it.
      sub _round {
      my $digits = shift;
      my $num = shift;

      my $add = 5 * (10 ** -($digits + 1));

      $num += $add;

      my ($int,$frac) = split /\./,$num;

      $frac = substr($frac, 0, $digits);

      $num = join '.', $int, $frac;

      return $num;
      }