Markus Holzer
and 1 contributors

NAME

Number::Format::Calc

SYNOPSIS

 use Number::Format::Calc (%args);
 $n = new Number::Format::Calc ('1.234,5', %args );

DESCRIPTION

This module makes calculations with formatted numbers transparent.

All arithmetric operators and and some arithmetric functions (sqrt, abs, cos, sin, exp, log) are overloaded.

METHODS

new ($self, $number, %args)

The constructor awaits the formatted number-string as the first argument, and a hash with the same formatting-options as in Number::Format.

The same arguments can be passed via the use Number::Format::Calc (%args);-statement and will then serve as defaults for all instances of Number::Format::Calc-objects.

number ($self)

This method returns the number without formats.

fmod ($self, $foo)

This method returns the result of a floating-point modulo operation from $self->number modulo $foo.

Examples

 use Number::Format::Calc;

 my $n = new Number::Format::Calc ( '1.111,5'  , -thousands_sep=>".", -decimal_point=>",", decimal_digits=>1 );
 my $m = new Number::Format::Calc ( '2.222,35' , -thousands_sep=>".", -decimal_point=>",", decimal_digits=>2 );

 #add 10 to the object
 print $n + 10, "\n"; #1.121,5;

 #When two objects are involved, the settings of the left object win:
 print $n + $m, "\n"; #3.333,9;
 print $m + $n, "\n"; #3.333,85;

 #modulo operation
 print $n % 9, "\n"; #4

 #floating-point modulo operation
 print $n->fmod(9), "\n"; #4.5

 #Get plain number
 print $n->number; #1111.5

More examples can be found in the test-files (*.t) that come with this module.

 ########################################################################

 #using defaults
 use Number::Format::Calc ( -thousands_sep=>".", -decimal_point=>",", -decimal_digits=>2, -decimal_fill => 1 );

 my $n = new Number::Format::Calc ('1.111,5');
 print $n; #1.111,50

PREREQUISITIES

 Number::Format
 Test::Simple

BUGS

None that I know of. If you find one, or a missing test-case, let me know.

AUTHOR

 Markus Holzer
 CPAN ID: HOLLIHO
 HOLLIHO@gmx.de
 http://holli.perlmonk.org

You can also reach me via the chatterbox at http://www.perlmonks.org

COPYRIGHT

This program is free software licensed under the...

    The General Public License (GPL)
    Version 2, June 1991

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1).