NAME

Number::Format::SouthAsian - format numbers in the South Asian style

VERSION

version 0.08

SYNOPSIS

Formats numbers in the South Asian style. You can read more on Wikipedia here:

http://en.wikipedia.org/wiki/South_Asian_numbering_system

The format_number() method has a words parameter which tells it to use words rather than simply separating the numbers with commas.

my $formatter = Number::Format::SouthAsian->new();
say $formatter->format_number(12345678);             # 1,23,45,678
say $formatter->format_number(12345678, words => 1); # 1.2345678 crores

You can also specify words to new(), which has the effect of setting a default value to be used.

my $formatter = Number::Format::SouthAsian->new(words => 1);
say $formatter->format_number(12345678);             # 1.2345678 crores
say $formatter->format_number(12345678, words => 0); # 1,23,45,678

You can also specify "decimals" to either new() or format_number(), which has the effect of rounding any decimals found. Note that this means slightly different things depending on wordiness.

my $rounding_formatter = Number::Format::SouthAsian->new(decimals => 2);
say $rounding_formatter->format_number(1234.5678); # 1,234.57
say $rounding_formatter->format_number(12345678, words => 1); # 1.23 crores

METHODS

new

Optionally takes a named parameter 'words' which sets the default of the 'words' parameter to format_number.

my $normal_formatter   = Number::Format::SouthAsian->new();
my $wordy_formatter    = Number::Format::SouthAsian->new(words => 1);
my $rounding_formatter = Number::Format::SouthAsian->new(decimals => 2);

format_number

Takes a positional parameter which should just be a number. Optionally takes a named parameter 'words' which turns on or off the wordy behaviour. Returns a string containing the number passed in formatted in the South Asian style.

my $formatted_number = $formatter->format_number(12345678);

my $formatted_number = $formatter->format_number(12345678, words => 1);

Copyright

Copyright (C) 2010 Lokku Ltd.

Author

Alex Balhatchet (alex@lokku.com)