ordinal method

  1. @useResult
String ordinal()

Returns an ordinal number of String type for any integer

101.ordinal(); // 101st
114.ordinal(); // 101th

999218.ordinal(); // 999218th

A double typed version can use: value.floor()

Implementation

@useResult
String ordinal() {
  // All "teens" (12, 13, 14.. 19) are 'th'
  if (this >= _teenRangeStart && this <= _teenRangeEnd) {
    return '${this}th';
  }

  final int onesPlace = this % _base10;

  return switch (onesPlace) {
    1 => '${this}st',
    2 => '${this}nd',
    _ordinalRdDigit => '${this}rd',
    _ => '${this}th',
  };
}