我自己编的,可能大家有时会用上,函数小数转分数,限于整除分数,如1/8,5/4等

函数

'函数实现小数转分数
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

时间: 2024-12-03 05:43:59

我自己编的,可能大家有时会用上,函数小数转分数,限于整除分数,如1/8,5/4等的相关文章

linux网络编程之socket(十三) epoll系列函数简介与select、poll的区别

一.epoll 系列函数简介 #include <sys/epoll.h> int epoll_create(int size); int epoll_create1(int flags); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);    

linux网络编程之socket(十二) select函数的并发限制和poll函数应用举例

一.用select实现的并发服务器,能达到的并发数,受两方面限制 1.一个进程能打开的最大文件描述符限制. 这可以通过调整内核参数.可以通过ulimit -n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有 限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看 2.select中的fd_set集合容量的限制 (FD_SETSIZE,一般为1024) ,这需要重新编译内核. 可以写个测试程序,只建立连接,看看最多能够建立多少个 连接,客

linux网络编程之socket(九) 使用select函数改进客户端/服务器端程序

一.当我们使用单进程单连接且使用readline修改后的客户端程序,去连接使用readline修改后的服务器端程序,会出 现一个有趣的现象,先来看输出: 先运行服务器端,再运行客户端, simba@ubuntu:~/Documents/code/linux_programming/UNP/socket$ ./echoser_recv_peek recv connect ip=127.0.0.1 port=54005 simba@ubuntu:~/Documents/code/linux_prog

Matlab.NET混编技巧之——找出Matlab内置函数

原文 http://www.cnblogs.com/asxinyu/p/3295309.html Matlab与.NET的混合编程,掌握了基本过程,加上一定的开发经验和算法基础,肯 定不难.反之,有时候一个小错误,可能抓破脑袋,加班几个晚上,调试才能解决.同样,由于Matlab.NET混编的特殊性,加上MathWorks的原 因,英文文档和没有披露一些详细的细节(甚至不允许反编译MWArray.dll,呵呵,它不允许,不代表你不会哦).经过很多项目,和大量的实验,也发 现了一些小技巧和小秘密,今

linux网络编程之System V 共享内存和系列函数

跟消息队列一样,共享内存也有自己的数据结构,如下: struct shmid_ds { struct ipc_perm shm_perm;    /* Ownership and permissions */ size_t     shm_segsz;   /* Size of segment (bytes) */ time_t     shm_atime;   /* Last attach time */ time_t     shm_dtime;   /* Last detach time

发一个刚编的暴力版/温柔版中文截取函数

推荐使用暴力版的, 安全可靠; 温柔版的从程序编写的角度看比较高效. 呵呵 基本原理是修正 off, len 可能的错位, 温柔版是从 off 往前倒寻, 寻到第一个 <0xa0 的字符认为是普通字符, 搜寻结束, 根据次数判定是否有错位... <?php /** * @brief 简洁高效的字符串截取函数 (支持 CJK字符) * * 只是简单判定了高位部分的ASCII值, 能应付绝大多数正规的中英文混合字符串 * 不支持 4字节或3字节的 utf 编码 * * 要点: 修正双字节中错位的

Android编程之ListPreference用法实例分析_Android

本文实例讲述了Android编程之ListPreference用法.分享给大家供大家参考,具体如下: 先展示一下效果图,如下所示: 项目代码如下: package com.my.listpreference; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.On

解读如何考核你是否是一名合格的网编

  搜索引擎喜欢原创内容这是一个总所周知的事情,近阶段百度对于那一些采用采集.复制或者是伪原创的站点打击更加的严格.为什么站点被K?找不到原因?很多老板都在责问.殊不知,问题的始作俑者就是来自于这一些老板.笔者发现很多老板观点还停留于一个网站要有好的排名就需要有大量的内容.所以很多老板都会要求自己的网编每天需要完成多少篇的文章,而改头换尾中间调换顺序是多数网编完成数量要求惯用的方法.但是,这种内容真的有效吗? 笔者曾有这么一个朋友跟我抱怨,他说他们公司的老板要求他们每天完成50篇文章,而试想一下

Keras编解码模型序列预测

编解码模型提供了一种使用循环神经网络来解决诸如机器翻译这样的序列预测问题的模式. 编解码模型可以用Keras Python深度学习库来进行开发,使用该模型开发的神经网络机器翻译系统的示例在Keras博客上也有描述,示例代码与Keras项目一起分发.该示例为用户开发自己的编解码LSTM模型提供了基础. 在本教程中,你将学会如何用Keras为序列预测问题开发复杂的编解码循环神经网络,包括: 如何在Keras中为序列预测定义一个复杂的编解码模型. 如何定义一个可用于评估编解码LSTM模型的可伸缩序列预