*_______________________________________________________________________________ function do_it() local numerator, denominator ?NumToFraction(-.855, @m.numerator, @m.denominator), m.numerator, m.denominator endfunc *_______________________________________________________________________________ function NumToFraction(n, numerator, denominator) local fraction if( m.n == 0 ) fraction = '0' numerator = 0 denominator = 1 else denominator = int(LowestCommonMultiple(m.n, 1) / abs(m.n)) numerator = int(m.n * m.denominator ) fraction = transf(m.numerator) + '/' + transf(m.denominator) endif return m.fraction endfunc *_______________________________________________________________________________ function GreatestCommonDivisor(x, y) if( ( m.x == 0) or ( m.y == 0 ) ) return 0 endif x = abs(m.x) y = abs(m.y) do while ( true ) x = mod(m.x, m.y) if( m.x == 0 ) return m.y endif y = mod(m.y, m.x) if( m.y == 0 ) return m.x endif enddo endfunc *_______________________________________________________________________________ function LowestCommonMultiple(x, y) local gcd gcd = GreatestCommonDivisor(m.x, m.y) if( m.gcd == 0 ) error 1307 endif return abs( int((m.x * m.y) / m.gcd ) ) endfunc *_______________________________________________________________________________