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

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)

相关推荐

  • Python科学计算环境推荐——Anaconda

    Anaconda是一个和Canopy类似的科学计算环境,但用起来更加方便.自带的包管理器conda也很强大. 首先是下载安装.Anaconda提供了Python2.7和Python3.4两个版本,同时如果需要其他版本,还可以通过conda来创建.安装完成后可以看到,Anaconda提供了Spyder,IPython和一个命令行.下面来看一下conda. 输入 conda list 来看一下所有安装时自带的Python扩展.粗略看了一下,其中包括了常用的 Numpy , Scipy , matpl

  • python实现在目录中查找指定文件的方法

    本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 复制代码 代码如下: import os from glob import glob #用到了这个模块 def search_file(pattern, search_path=os.environ['PATH'], pathsep=os.pathsep):     for path in search_path.split(os.pathsep):         for mat

  • Python中分数的相关使用教程

    你可能不需要经常处理分数,但当你需要时,Python的Fraction类会给你很大的帮助.在该指南中,我将提供一些有趣的实例,用于展示如何处理分数,突出显示一些很酷的功能. 1 基础 Fraction类在Lib/fractions.py文件中,所以可以这样导入: from fractions import Fraction 有很多种实例化Fraction类的方法. 首先,你可以传入分子和分母: >>> Fraction(1, 2) Fraction(1, 2) 或者利用另一个分数进行实例

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

    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

  • 如何编写一个创建FTP站点的函数?

    如何编写一个创建FTP站点的函数?Function ASTCreateFtpSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum, Computer, Start,LogFileDirectory)    Dim MSFTPSVC, FtpServer, NewFtpServer, NewDir    Dim Bindings, BindingString, NewBindings, Index, SiteObj, bDo

  • 如何编写一个过滤掉HTML代码的函数?

    如何编写一个过滤掉HTML代码的函数?<%Function Filterhtml(strToFilter)  Dim strTemp  strTemp = strToFilter  While Instr(1,strTemp,"<") AND Instr(1, strTemp, ">")    strTemp = Left(strTemp, Instr(1, strTemp, "<")-1) & Right(str

  • 用JS编写一个函数,返回数组中重复出现过的元素(实例)

    用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = 1; } else { obj[arr[i]]++; } } for (var

  • 用Python编写一个简单的Lisp解释器的教程

    本文有两个目的: 一是讲述实现计算机语言解释器的通用方法,另外一点,着重展示如何使用Python来实现Lisp方言Scheme的一个子集.我将我的解释器称之为Lispy (lis.py).几年前,我介绍过如何使用Java编写一个Scheme解释器,同时我还使用Common Lisp语言编写过一个版本.这一次,我的目的是尽可能简单明了地演示一下Alan Kay所说的"软件的麦克斯韦方程组" (Maxwell's Equations of Software). Lispy支持的Scheme

  • Python字符串转换成浮点数函数分享

    利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456 from functools import reduce def str2float(s): return reduce(lambda x,y:x+int2dec(y),map(str2int,s.split('.'))) def char2num(s): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':

  • 如何编写一个 Webpack Loader的实现

    前言 在平时自己由零搭建项目时,虽然基础配置都比较熟悉,比如配置 file-loader, url-loader, css-loader 等,配置不难,但究竟是怎么起作用的呢,今天就来说说如何编写一个 Webpack Loader. Loader 作用 按我自己的简单理解,loader 通常指打包的方案,即按什么方式来处理打包,打包的时候它可以拿到模块源代码,经过特定 loader 的转换后返回新的结果. 比如 sass-loader 可以把 SCSS 代码转换成 CSS 代码 编写 Loade

  • 使用golang编写一个并发工作队列

    其实golang用一个函数可以构建一个并发队列,现在编写一个灵活可控的队列程序 先定义一个工作 type Worker struct { ID int RepJobs chan int64 SM *SM quit chan bool } 包含了workid和执行任务的id,上面的SM只是任务具体内容,这个和具体业务相关,大家自己编写自己的SM业务逻辑 然后定义工作池 type workerPool struct { workerChan chan *Worker workerList []*Wo

  • C# 利用VS编写一个简单的网游客户端

    目录 一.测试连接服务器 二.设计客户端 三.运行效果 四.总结 一.测试连接服务器 1.打开cmd,输入ping 10.1.230.74 2.输入telnet,进入telnet界面 3.输入set localecho,打开本地回显: 4.连接服务器,输入命令open 10.1.230.74 3900 二.设计客户端 1.新建项目 打开VS2022选择新建Windows窗体应用 如果没找到,说明没有安装相应的配置,可以添加工具 选择 安装成功就能找到了. 2.设计界面 新建完成后,会直接来到Fo

  • 基于vite2+Vue3编写一个在线帮助文档工具

    目录 技术栈 建立库项目(@naturefw/press-edit)实现文档的编写.浏览功能 编辑状态的功能 浏览状态的功能 实现导航 实现菜单 实现n级分组菜单 实现菜单的维护功能 实现Markdown的编辑 实现在线编写代码并且运行的功能 导出 复制粘贴 下载 用后端写文件 实现一个帮助文档的项目 main.js 设置Markdown 布局 导航.菜单.编辑和浏览 打包发布与版本管理 提起帮助文档,想必大家都会想到 VuePress等,我也体验了一下,但是感觉和我的思路不太一样,我希望的是那

随机推荐