You are viewing the version of this documentation from Perl 5.005_03. View the latest version



Math::BigFloat - Arbitrary length float math package


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


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 imbedded 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($div_scale,length(dividend)+length(divisor)) digits by default. Also used for default sqrt scale.


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


Mark Biggar