Next: Math::BigInt | Previous: locale |  | [Table of Contents] | [Index]

# Math::BigFloat

- NAME
- SYNOPSIS
- DESCRIPTION
- BUGS
- AUTHOR

## NAME

Math::BigFloat - Arbitrary length float math package

## SYNOPSIS

      use Math::BigFloat;
      $f = Math::BigFloat->new($string);

      $f->fadd(NSTR) return NSTR            addition
      $f->fsub(NSTR) return NSTR            subtraction
      $f->fmul(NSTR) return NSTR            multiplication
      $f->fdiv(NSTR[,SCALE]) returns NSTR   division to SCALE places
      $f->fneg() return NSTR                negation
      $f->fabs() return NSTR                absolute value
      $f->fcmp(NSTR) return CODE            compare undef,<0,=0,>0
      $f->fround(SCALE) return NSTR         round to SCALE digits
      $f->ffround(SCALE) return NSTR        round at SCALEth place
      $f->fnorm() return (NSTR)             normalize
      $f->fsqrt([SCALE]) return NSTR        sqrt to SCALE places

## DESCRIPTION

    All basic math operations are overloaded if you declare your big
    floats as

        $float = new Math::BigFloat "2.123123123123123123123123123123123";

number format
  canonical strings have the form /[+-]\d+E[+-]\d+/ . Input values can have embedded whitespace.
Error returns 'NaN'
  An input parameter was "Not a Number" or divide by zero or sqrt of negative number.
Division is computed to
  `max($Math::BigFloat::div_scale,length(dividend)+length(divisor))` digits by default. Also used for default sqrt scale.
Rounding is performed
  according to the value of `$Math::BigFloat::rnd_mode`:

        trunc     truncate the value
        zero      round towards 0
        +inf      round towards +infinity (round up)
        -inf      round towards -infinity (round down)
        even      round to the nearest, .5 to the even digit
        odd       round to the nearest, .5 to the odd digit

  The default is `even` rounding.

## BUGS

The current version of this module is a preliminary version of the real thing that is currently (as of perl5.002) under development.

    The printf subroutine does not use the value of
    $Math::BigFloat::rnd_mode when rounding values for printing.
    Consequently, the way to print rounded values is
    to specify the number of digits both as an
    argument to ffround and in the %f printf string,
    as follows:

      printf "%.3f\n", $bigfloat->ffround(-3);

## AUTHOR

Mark Biggar

[Top] Generated by Pod::HTML 0.43 on Mon Mar 19 17:34:35 2001