NumberFormat constructor

NumberFormat({
  1. Locale? locale,
  2. FormatStyle style = const DecimalStyle(),
  3. String? currency,
  4. SignDisplay signDisplay = SignDisplay.auto,
  5. Notation notation = const StandardNotation(),
  6. Grouping useGrouping = Grouping.auto,
  7. NumberingSystem? numberingSystem,
  8. RoundingMode roundingMode = RoundingMode.halfExpand,
  9. TrailingZeroDisplay trailingZeroDisplay = TrailingZeroDisplay.auto,
  10. int minimumIntegerDigits = 1,
  11. Digits? digits,
})

Creates a NumberFormat instance with custom formatting options.

  • locale: The locale to use for formatting. Defaults to the system locale.
  • style: The overall formatting style. Defaults to DecimalStyle.
  • currency: The 3-letter ISO 4217 currency code (e.g., 'USD') for currency formatting.
  • signDisplay: When to display the sign for the number. Defaults to SignDisplay.auto.
  • notation: The notation system to use. Defaults to StandardNotation.
  • useGrouping: Whether to use grouping separators. Defaults to Grouping.auto.
  • numberingSystem: The numbering system to use (e.g., 'latn', 'arab').
  • roundingMode: The rounding strategy to use. Defaults to RoundingMode.halfExpand.
  • trailingZeroDisplay: When to display trailing zeros. Defaults to TrailingZeroDisplay.auto.
  • minimumIntegerDigits: The minimum number of integer digits to use. Defaults to 1.
  • digits: Specifies the minimum and maximum number of fraction or significant digits.

Example:

import 'package:intl4x/number_format.dart';

void main() {
  print(NumberFormat(locale: Locale('de'), style: DecimalStyle(digits: FractionDigits(2, 2))).format(1234.567)); // Prints '1.234,57'
}

Implementation

NumberFormat({
  Locale? locale,
  FormatStyle style = const DecimalStyle(),
  String? currency,
  SignDisplay signDisplay = SignDisplay.auto,
  Notation notation = const StandardNotation(),
  Grouping useGrouping = Grouping.auto,
  NumberingSystem? numberingSystem,
  RoundingMode roundingMode = RoundingMode.halfExpand,
  TrailingZeroDisplay trailingZeroDisplay = TrailingZeroDisplay.auto,
  int minimumIntegerDigits = 1,
  Digits? digits,
}) : _impl = NumberFormatImpl.build(
       locale ?? findSystemLocale(),
       NumberFormatOptions.custom(
         currency: currency,
         digits: digits,
         minimumIntegerDigits: minimumIntegerDigits,
         notation: notation,
         numberingSystem: numberingSystem,
         roundingMode: roundingMode,
         signDisplay: signDisplay,
         style: style,
         trailingZeroDisplay: trailingZeroDisplay,
         useGrouping: useGrouping,
       ),
     );