NAME
Interchange6::Currency - Currency objects for Interchange 6
VERSION
0.100
DESCRIPTION
Extends CLDR::Number::Format::Currency with accurate calculation functions using Math::BigFloat.
Many useful standard operators are overloaded and return currency objects if appropriate.
ATTRIBUTES
value
Value as simple decimal, e.g.: 3.45
All values are coerced into Math::BigFloat.
converter_class
Defaults to Finance::Currency::Convert::WebserviceX.
The class name which handles conversion to a new currency_code
.
The converter class can be any class that supports the following method signature:
sub convert {
my ($self, $price, $from, $to) = @_;
return $converted_price;
};
converter
Vivified "converter_class".
METHODS
BUILD
Sets precision for automatic rounding of "value" to "maximum_fraction_digits" in CLDR::Number::Format::Currency.
clone %new_attrs?
Returns clone of the currency object possibly with new attribute values (if any are supplied).
convert $new_corrency_code
Convert to new currency using "converter".
NOTE: If /convert
is called in void context then the currency object is mutated in place. If called in list or scalar context then the original object is not modified and a new Interchange6::Currency object is returned instead.
as_string
Stringified formatted currency, e.g.: $3.45
stringify
Alias for "as_string".
add $arg
Add $arg
to "value" in place.
subtract $arg
Subtract $arg
from "value" in place.
multiply $arg
Multiply "value" by $arg
in place.
divide $arg
Divide "value" by $arg
in place.
modulo $arg
Return "value" %
$arg
as currency object.
cmp_value $arg
Equivalent to "value" <=>
$arg
.
cmp $arg
String comparison.
Not always useful in itself since string comparison of stringified currency objects might not produce what you expect depending on locale and currency code.