currency_formatter 1.2.1 copy "currency_formatter: ^1.2.1" to clipboard
currency_formatter: ^1.2.1 copied to clipboard

A package to easily format money. It supports setting a custom currency symbol and format, using some of the inbuilt ones for the main currencies or using the system one.

currency_formatter #

A package to easily format money. It supports setting a custom currency symbol and format, using some of the inbuilt ones for the main currencies or using the system one.

Platform compatibility #

This package is compatible with all Flutter platforms. However, CurrencyFormatter().getLocal() does not work for web.

Format money #

To set how a double will be formatted, create a CurrencyFormatterSettings:

CurrencyFormatterSettings euroSettings = CurrencyFormatterSettings(
  symbol:'€',
  symbolSide: SymbolSide.left,
  thousandSeparator: '.',
  decimalSeparator: ',',
);

symbolSide can be set to SymbolSide.left, SymbolSide.right, or SymbolSide.none. thousandSeparator and decimalSeparator default to '.', ',' or ',','.' automatically depending on symbolSide.

To format a num, CurrencyFormatter().format() is used:

CurrencyFormatter cf = CurrencyFormatter();
num amount = 1910.9347;
String formatted = cf.format(amount, euroSettings); // 1.910,93 €
String compact = cf.format(amount, euroSettings, compact: true); // 1,91K €
String threeDecimal = cf.format(amount, euroSettings, decimal: 3); // 1.910,945 €

Parse formatted money #

To get a num from a formatted String, use CurrencyFormatter().format():

// Above's example continuation
num parseFormatted = cf.parse(formatted, euroSettings); // 1910.93
num parseCompact = cf.parse(compact, euroSettings); // 1910.0
num parseThreeDecimal = cf.parse(threeDecimal, euroSettings); // 1910.935

Predefined CurrencyFormatterSettings #

Predefined settings for many currencies are also included in this package. They are listed in the CurrencyFormatter.majors variable and their symbols in CurrencyFormatter.majorSymbols. They can be used in both of the following ways which do exactly the same:

String inUSD = cf.format(amount, CurrencyFormatter.usd); // $ 1,910.93
String inRUB = cf.format(amount, cf.majors['rub']!); // 1.910,93 ₽

String jpySymbol = cf.majorSymbols['jpy']!; // ¥

In Flutter, you can get the default CurrencyFormatterSettings according to the device language using cf.getLocal():

String inSystemCurrency = cf.format(amount, cf.getLocal() ?? cf.majors['usd']!);

You can get a CurrencyFormatterSettings from a currency symbol (if it is in CurrencyFormatter.majors) with CurrencyFormatter.getFromSymbol():

String fromSymbol = cf.format(amount, cf.getFromSymbol('£')!); // £ 1,910.35
41
likes
130
pub points
95%
popularity

Publisher

unverified uploader

A package to easily format money. It supports setting a custom currency symbol and format, using some of the inbuilt ones for the main currencies or using the system one.

Repository (GitHub)
View/report issues

Documentation

API reference

License

unknown (license)

Dependencies

flutter, intl

More

Packages that depend on currency_formatter