each unicode character has an optional "numeric value", which may be a fractional value.
the unicodedata module provides a "numeric" function, which returns a Python float representing this fraction. this is currently implemented by a large switch stmnt, containing entries like:
case 0x2159: return (double) 1 / 6;
if I replace the numbers here with integer variables (read from the character type table) and return the result to Python, will str(result) be the same thing as before for all reasonable values?