源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

如何编写一个小数转换分数的函数?

  • 时间:2022-06-18 05:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:如何编写一个小数转换分数的函数?
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

  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部