Foxtable(狐表)用户栏目专家坐堂 → FoxTable中如何将小数转化为分式?


  共有23960人关注过本帖树形打印复制链接

主题:FoxTable中如何将小数转化为分式?

帅哥哟,离线,有人找我吗?
贺老六
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/10/13 11:43:00 [显示全部帖子]

没有这个东东,我看看能不能提供一个

 回到顶部
帅哥哟,离线,有人找我吗?
贺老六
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/10/13 12:27:00 [显示全部帖子]

用代码最大的好处,是可以自己写,例如小数转分数的代码是:

        Dim V As Double '要转换的小数
        Dim N As Long '分子
        Dim D As Long '分母
        Dim MaxTerms As Long = 15 '最大循环次数
        Dim MinDivisor As Double = 0.000001 '最小除数
        Dim MaxError As Double = 0.00000001 '精度
        Dim F As Double
        Dim A As Long
        Dim n1 As Long
        Dim D1 As Long
        Dim n2 As Long
        Dim D2 As Long

        F = V
        n1 = 1
        D1 = 0
        n2 = 0
        D2 = 1

        For i As Long = 0 To MaxTerms
            A = CLng(Math.Floor(F))
            F = F - A
            N = n1 * A + n2
            D = D1 * A + D2
            n2 = n1
            D2 = D1
            n1 = N
            D1 = D

            If F < MinDivisor Then Exit For
            If Math.Abs(V - N / D) < MaxError Then Exit For
            F = 1 / F
        Next i
        Return N & "/" & D

[此贴子已经被作者于2008-10-13 12:40:43编辑过]

 回到顶部