CREATE CURSOR _decimals (cfracstart c(20),cdecimal c(20),cfracres C(20)) SELECT _decimals j=1 DO WHILE j <= 64 FOR i = 1 to j lnfraction = i/j lcfraction = _DecToFraction(lnfraction) ? ALLTRIM(STR(i))+ "/"+ALLTRIM(STR(j)) + " --> " + lcfraction m.cfracstart = ALLTRIM(STR(i))+ "/"+ALLTRIM(STR(j)) m.cdecimal = ALLTRIM(STR(lnfraction,10,5)) m.cfracres = lcfraction INSERT INTO _decimals FROM MEMVAR NEXT i j=j*2 ENDDOBTW, keep your eye out for next month's UT Magazine... you just might be in it!
>FUNCTION _DecToFraction(nDec1) >*----------------------------------- >* Transforma de Decimal a Fraccion >* Uso: _DecToFraction(nDec1) >* Devuelve: Caracter >*----------------------------------- > LOCAL cRes, nCon > nCon = 0 > cRes = "No Fraction" > DO WHILE nCon<1000000 > nCon = nCon+1 > DO CASE > CASE MOD(nCon,nDec1)=0 > cRes=ALLTRIM(STR(nCon))+"/"+ALLTRIM(STR(nCon/nDec1)) > EXIT > ENDCASE > ENDDO > RETURN cRes >ENDFUNC >>