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).