NumberFormat.compact constructor

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

Creates a NumberFormat instance for compact number formatting.

WARNING: Not implemented on native yet.

Compact notation is a way to format numbers that are very large or very small in a more human-readable way, e.g., "1.2M" instead of "1,200,000".

  • locale: The locale to use for formatting. Defaults to the system locale.
  • compactDisplay: The display style for compact notation. Defaults to CompactDisplay.short.
  • style: The overall formatting style. Defaults to DecimalStyle.
  • signDisplay: When to display the sign for the number. Defaults to SignDisplay.auto.
  • 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.compact().format(1234567)); // Prints '1.2M'
}

Implementation

//TODO: implement in ICU4X
NumberFormat.compact({
  Locale? locale,
  CompactDisplay compactDisplay = CompactDisplay.short,
  //General options
  FormatStyle style = const DecimalStyle(),
  SignDisplay signDisplay = SignDisplay.auto,
  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.compact(
         compactDisplay: compactDisplay,
         digits: digits,
         minimumIntegerDigits: minimumIntegerDigits,
         numberingSystem: numberingSystem,
         roundingMode: roundingMode,
         signDisplay: signDisplay,
         style: style,
         trailingZeroDisplay: trailingZeroDisplay,
         useGrouping: useGrouping,
       ),
     );