PRINT "3.141592653589793 = ", Dec2Frac$ (3.141592653589793) FUNCTION Dec2Frac$ (Argument AS SINGLE) DIM RAW a AS SINGLE DIM RAW b AS SINGLE DIM RAW c AS INTEGER DIM RAW d AS INTEGER DIM RAW e AS INTEGER DIM RAW f AS INTEGER DIM RAW num AS SINGLE DIM RAW den AS SINGLE DIM RAW ratio AS SINGLE DIM RAW mult AS INTEGER IF Argument < 0.0 THEN FUNCTION = "Argument cannot be negative" END IF a = Argument b = 1.0 c = 1 d = 0 e = 0 f = 1 DO mult = a / b a -= mult * b c -= mult * d e -= mult * f num =- e den = c ratio = num / den IF Argument - ratio < 0.00000001 THEN EXIT LOOP END IF mult = b / a b -= mult *a d -= mult *c f -= mult *e num = f den = - d ratio = num / den IF ratio - Argument < 0.00000001 THEN EXIT LOOP END IF LOOP FUNCTION = REMOVE$(STR$(f) + "/" + STR$(-d)," ") END FUNCTION