
 
 | 
| 技术资料  > ASP技术 > 客户端相关 : 函数小数转分数,限于整除分数 |  
函数小数转分数,限于整除分数 March 25,2004 |  
'函数实现小数转分数 
Public Function XtoF(str As Currency, Optional fenm As Integer = 32) As String '只限于整除分数 
   Dim Cfm As Currency 
   Dim cfmmod As Integer 
   On Error GoTo Erroreof 
    
   Cfm = 1 / fenm 
   XtoF = "" 
   If str = 0 Then XtoF = "": Exit Function 
    
   Dim point As Integer 
   Dim dInt As String 
   Dim dPoint As Currency 
   Dim fint, fint1, fint2 As Integer 
   If str <> 0 Then 
        If str > 1 Then 
            point = InStr(1, str, ".", 1) 
            If point = 0 Then 
                XtoF = str: 
                Exit Function 
            Else 
                dInt = Mid(str, 1, point - 1) 
                dPoint = CCur("0." & Mid(str, point + 1)) 
                fint = InStr(1, XtoF(dPoint), "/", 1) 
                fint1 = CInt(Mid(XtoF(dPoint), 1, fint - 1)) 
                fint2 = CInt(Mid(XtoF(dPoint), fint + 1)) 
                 
                XtoF = CStr(dInt * fint2 + fint1) & "/" & CStr(fint2) 
            
            End If 
        Else 
           If fenm Mod CInt(str / Cfm) = 0 Then 
            XtoF = "1/" + CStr(fenm / CInt(str / Cfm)) 
           Else 
              cfmmod = Maxgys(fenm, CInt(str / Cfm)) 
            XtoF = CStr(CInt(str / Cfm / cfmmod)) + "/" + CStr(CInt(fenm / cfmmod)) 
           End If 
        End If 
   Else 
       XtoF = "0" 
   End If 
   Exit Function 
Erroreof: 
   XtoF = "" 
End Function 
Function Maxgys(num1 As Integer, num2 As Integer) As Integer 
    Dim minnum, i As Integer 
    minnum = num1 
    If num1 > num2 Then minnum = num2 
    For i = 1 To minnum 
     If ((num1 Mod i) = 0) And ((num2 Mod i) = 0) Then Maxgys = i 
 
   
    Next i 
End Function |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved