def METHOD_NAME(self, number):
    if number % 1 != 0:
        raise NotImplementedError()
    words = []
    fragments = list(splitbyx(str(number), 3))
    level = 0
    last = fragments[-1]
    while last == 0:
        level = level+1
        fragments.pop()
        last = fragments[-1]
    if len(fragments) > 1:
        pre_part = self._int2word(number-(last*1000**level))
        words.append(pre_part)
    self.last_fragment_to_ordinal(last, words, 0 if level == 0 else 1)
    output = " ".join(words)
    if last == 1 and level > 0 and output != "":
        output = output + " "
    if level > 0:
        output = output + prefixes_ordinal[level]
    return output