MoneyFormatter is a Flutter extension to formatting various types of currencies according to the characteristics you like, without having to be tied to any localization.
Package selection guidance compiled from public package information, community data, and project usage.
MoneyFormatter is a Flutter package that enables flexible and customizable currency formatting across multiple platforms. It allows developers to format numbers as money with support for various currency symbols, decimal places, separators, and prefixes/suffixes without relying on localization. Ideal for apps requiring dynamic or non-standard monetary displays, it offers precise control over appearance while maintaining performance and cross-platform consistency.
Use cases
E-commerce price display
Financial app transaction formatting
Custom currency symbol handling
Dynamic pricing in multi-region apps
User input formatting with masks
Real-time currency conversion previews
Key features
Customizable currency symbols
Configurable decimal places and separators
Support for prefixes and suffixes
No dependency on localization
Cross-platform compatibility
Easy integration with text fields
Suitable for
Developers needing flexible money formatting
Apps with non-standard currency formats
Multi-region financial applications
UI components requiring real-time number formatting
Does not handle locale-specific formatting by default
Requires manual configuration for each currency
May need additional validation for user inputs
Not optimized for high-frequency updates
Limited built-in currency list beyond basic settings
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
money_formatter
MoneyFormatter is a Flutter package to formatting various types of currencies according to the characteristics you like, without having to be tied to any localization.
Dependencies :
Screenshot
Install
For complete steps in installing MoneyFormatter you can see in the Installation Guide.
Of course you are not required to initialize the entire configuration in the settings (MoneyFormatterSettings) parameter as in the example above. You can change one or more of the configurations above. This is because each configuration above is not mandatory and has a default value.
You can change the type of compact format like for million using M or million, or trillion using T or trillion. and so on. This type only supports two type as described below:
Value
Description
CompactFormatType.short
Used to make the compact format displayed using short text.
CompactFormatType.long
Used to make the compact format displayed using long text.
MoneyFormatterOutput
You can use formats that match your needs through properties found in the MoneyFormatterOutput instance.
Property Names
Data Type
Descriptions
nonSymbol
String
The results of the format of the currency are normal and without a currency symbol. Example: 12,345,678.90
symbolOnLeft
String
The results of the normal currency format and with currency symbols are on the left. Example: $ 12,345,678.90
symbolOnRight
String
The results of the normal currency format and with currency symbols are on the right. Example: 12,345,678.90 $
compactNonSymbol
String
The results of the currency format are compact and without a currency symbol. Example: 12.3M
compactSymbolOnLeft
String
The results of the currency format are compact and with currency symbols on the left. example: $ 12.3M
compactSymbolOnRight
String
The results of the currency format are compact and with currency symbols on the right. example: 12.3M $
fractionDigitsOnly
String
Only give the fraction value. Example: 90
withoutFractionDigits
String
Give a value without fractions. Example: 12,345,678
MoneyFormatterCompare
Method
Parameter
Descriptions
isLowerThan
amount
Check current instance-amount is lower than [amount] or not.
isGreaterThan
amount
Check current instance-amount is greater than [amount] or not.
isEqual
amount
Check current instance amount is equal than [amount] or not.
isEqualOrLowerThan
amount
Check current instance amount is equal or lower than [amount] or not.
isEqualOrGreaterThan
amount
Check current instance amount is equal or greater than [amount] or not.
fastCalc is a function that can be used to perform various fast calculation processes that you might need. In implementing it, the fastCalc function gives the output of a MoneyFormatter instance so you can perform several calculation functions at once with the chaining method.
The type parameter used by the fastCalc function has the FastCalcType data type which is an enum. The following table is an explanation for the FastCalcType enum:
Index
Name
Description
0
addition
Used to do addition calculations.
1
substraction
Used to do substraction calculations.
2
multiplication
Used to do multiplication calculations.
3
division
Used to do division calculations.
4
percentageAddition
Used to do the addition calculations base on percentage.
5
percentageSubstraction
Used to do the substraction calculations base on percentage.
Duplicating Instance
For some reasons, you may need to duplicate the instance and just need to change some configurations. To do that, you can use the copyWith method as below: