# File lib/facet/lisp-format.rb, line 847
        def ordinal(n)
          return 'zeroth' if n.zero?
          out = []
          if n < 0
            out << 'minus'
            n = n.abs
          end
          hundreds, tens_ones = n.divmod(100)
          if hundreds > 0
            out << cardinal(hundreds * 100) + (tens_ones.zero? ? 'th' : '')
          end
          if tens_ones >= 20
            tens, ones = tens_ones.divmod(10)
            if ones.zero?
              out << @@ordinal_tens[tens]
            else
              out << @@names[tens * 10] + '-' + @@ordinal_ones[ones]
            end
          elsif tens_ones > 0
            out << @@ordinal_ones[tens_ones]
          end
          out.join(' ')
        end