Decimal Separator

Numbers use a decimal separator to separate the integer and factional (decimal) component of a number.

In the English speaking world the period (.) is used as the decimal separator, however in large parts of the world the comma (,) is used as the decimal separator.

e.g.

  • $USD1,000.99 (one thousand dollars and 99 cents)

  • €EUR1.000,99 (one thousand euro and 99 cents)

Money2 use the English convention by default unless you use a CommonCurrency in which case the appropriate separators will have been set for each currency.

To switch to the Euro style convention set the decimalSeparator and groupSeparator arguments when creating a currency.

You will also need to provide an appropriate pattern.

import 'package:money2/money2.dart';
    test('Decimal Separator', () {
      final euro = Currency.create('EUR', 2,
          symbol: '€',
          decimalSeparator: ',',
          groupSeparator: '.',
          pattern: 'S0,000.00');

      expect(euro.decimalSeparator, equals(','));
    });

Note: even if you have switched to alternate separators, Money2 patterns always use the '.' for a decimal separator and the ',' as the thousand group separator. This allows patterns to be shared amongst currencies.

Last updated

Was this helpful?