Создание компактных / дружественных для человека поплавков с использованием вульгарных фракций Unicode

Существуют ли какие-либо модули (желательно в стандартной библиотеке), которые могут превратить число с плавающей точкой в ​​нечто более удобное для человека? Может быть, это не более дружелюбный человек, но по крайней мере более компактный.

например. 4.625 станет "4⅝"

(Бонусные очки брауни за распознавание пи с разумной точностью)

Этот набросок кода был лучшим, что я мог придумать:

import unicodedata

def simplify_float(number):
    vf = "VULGAR FRACTION "
    vulgars = {0.125 : unicodedata.lookup(vf + "ONE EIGHTH"),
               0.2   : unicodedata.lookup(vf + "ONE FIFTH"),
               0.25  : unicodedata.lookup(vf + "ONE QUARTER"),
               0.375 : unicodedata.lookup(vf + "THREE EIGHTHS"),
               0.4   : unicodedata.lookup(vf + "TWO FIFTHS"),
               0.5   : unicodedata.lookup(vf + "ONE HALF"),
               0.6   : unicodedata.lookup(vf + "THREE FIFTHS"),
               0.625 : unicodedata.lookup(vf + "FIVE EIGHTHS"),
               0.75  : unicodedata.lookup(vf + "THREE QUARTERS"),
               0.8   : unicodedata.lookup(vf + "FOUR FIFTHS"),
               0.875 : unicodedata.lookup(vf + "SEVEN EIGHTHS")}

    decimal = int(number)
    if number == decimal:
        return unicode(decimal)

    vulgar = vulgars.get(number - decimal)
    if vulgar:
        if decimal == 0:
            return vulgar
        return "%d%s" % (decimal, vulgar)
    return "%.1f" % number

Идти в другом направлении довольно легко, используя модуль unicodedata, но я не смог найти хорошего способа для написания этих строк.

Ответы на вопрос(1)

Ваш ответ на вопрос