这样试试(其实公式复杂并不可怕,与它没关系):
Dim s,s1 As String
s = "-4*25/2/5/10*(-1)*1-1/600+5*5*5/125*(1/5+(-1/5))+1/600-41/7999-(-41/7999)-999/7999" '这里的下一行最好先判断一下该公式是否合法,否则提示公式错误并终止代码的执行!
Dim a,b,c,d As Integer
a = eval(s)
If a = 1 Or a = 0
Output.show(a)
Else
s1 = a
s1 = s1.split("-")(1)
b = s1
For i As Integer = 1 To 100000000
If i Mod b = 0 And (i/b) Mod b = 0
c = i/b
b = i
Exit For
End If
Next
d = Math.Min(b,c)
If a < 1
s = "-"
Else
s = Nothing
End If
If b > 1 And c > 1
For i As Integer = d To 2 Step -1
If b Mod i = 0 And c Mod i = 0
Output.show(s & b/i & "/" & c/i)
Exit For
End If
If i = 2
Output.show(s & b & "/" & c)
End If
Next
End If
End If
[此贴子已经被作者于2012-9-30 8:58:22编辑过]