FixedNumberPrinter<T extends num> constructor

FixedNumberPrinter<T extends num>({
  1. double? accuracy,
  2. int base = 10,
  3. List<String> characters = NumeralSystem.latin,
  4. String delimiter = delimiterString,
  5. String infinity = infinityString,
  6. String nan = nanString,
  7. int padding = 0,
  8. int precision = 0,
  9. String separator = '',
  10. int separatorWidth = 3,
  11. int separatorOffset = 0,
  12. Printer<T>? sign,
})

Prints numbers in a custom fixed format.

Implementation

FixedNumberPrinter({
  this.accuracy,
  this.base = 10,
  this.characters = NumeralSystem.latin,
  this.delimiter = delimiterString,
  this.infinity = infinityString,
  this.nan = nanString,
  this.padding = 0,
  this.precision = 0,
  this.separator = '',
  this.separatorWidth = 3,
  this.separatorOffset = 0,
  Printer<T>? sign,
}) : assert(base <= characters.length, 'Not enough characters for base'),
     sign = sign ?? SignNumberPrinter<T>.omitPositiveSign(),
     _integer = const Printer<String>.standard()
         .mapIf(
           padding > 0,
           (printer) => printer.padLeft(padding, characters[0]),
         )
         .mapIf(
           separator.isNotEmpty && separatorWidth > 0,
           (printer) => printer.separateRight(
             separatorWidth,
             separatorOffset,
             separator,
           ),
         ),
     _fraction = const Printer<String>.standard()
         .mapIf(
           precision > 0,
           (printer) => printer.padLeft(precision, characters[0]),
         )
         .mapIf(
           separator.isNotEmpty && separatorWidth > 0,
           (printer) => printer.separateLeft(
             separatorWidth,
             separatorOffset,
             separator,
           ),
         );