设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

Access自定义小数位数函数源码

2002-6-14 21:51| 发布者: admin| 查看: 699| 评论: 11|原作者: sdlhlsd|来自: www.office-cn.net

摘要: 自定义小数位函数源码! Public Function n2(D As Double) As Double n2 = Int(D * 100 + 0.5) / 100 Exit Function '此函数可保留两位小数 End Function Public Function n3(D As Double) ...
自定义小数位函数源码!

Public Function n2(D As Double) As Double
     
    n2 = Int(D * 100 + 0.5) / 100
   
    Exit Function
    '此函数可保留两位小数
End Function

Public Function n3(D As Double) As Double
    n3 = Int(D * 1000 + 0.5) / 1000
    Exit Function  
    ' 此函数可保留叁位小数
End Function

Public Function n4(D As Double) As Double
    n4 = Int(D * 10000 + 0.5) / 10000
    Exit Function
’此函数可保留四位小数
End Function

以此类推,可做出n5,n6,n7,n8.................你要精确多少位,自已都可能做!

也可以做成这样的自定义函数
Public Function nn(n as Integer,D As Double) As Double
if n<0 then 
msgbox "位数不能少于0"
exit Function
end if
n2 = Int(D * 10^n + 0.5) / 10^n
End Function
如果是0位,即取整

发表评论

最新评论

引用 make 2002-6-15 00:29
谢谢,不过能否做一个统一的函数,方便调用,先谢了
引用 huanghai 2002-6-15 00:36
sdlhlsd版主,代码很好。
有没有兴趣写成这样的格式
Public Function N-N(D As Double,N as Integer) As Double
。。。。。

----------------
达到这样的效果:
N-N(1.756 , 1)=1.8
N-N(1.756 , 2)=1.76
引用 make 2002-6-15 00:40
好,正是,我就想要这样
引用 sdlhlsd 2002-6-15 00:46
好主意!
只要在前面加一点点就行了!
引用 make 2002-6-15 00:53
我想到了,这样行不行
Public Function nn(n as Double,D As Double) As Double

n2 = Int(D * 10*n + 0.5) / 100

Exit Function
'此函数可保留两位小数
End Function
引用 tmtony 2002-6-15 01:41
有些BUG
我再改一下
Public Function nn(n as Integer,D As Double) As Double
if n<=0 then
msgbox "位数不能少于0"
exit Function
end if
n2 = Int(D * 10*n + 0.5) / n*10
End Function

如果是0位,即取整,大家可再加些程序
引用 sdlhlsd 2002-6-15 01:57
这样还不行!要乘10的n次方,即10的幂!
引用 tmtony 2002-6-15 02:17
倒是忘了:)
再改
Public Function nn(n as Integer,D As Double) As Double
if n<0 then
msgbox "位数不能少于0"
exit Function
end if
n2 = Int(D * 10^n + 0.5) / 10^n
End Function
引用 huanghai 2002-6-15 06:11
以下是引用tmtony在2002-6-14 18:17:18的发言:
倒是忘了:)
再改&nbsp;
Public&nbsp;Function&nbsp;nn(n&nbsp;as&nbsp;Integer,D&nbsp;As&nbsp;Double)&nbsp;As&nbsp;Double
if&nbsp;n<0&nbsp;then&nbsp;
msgbox&nbsp;"位数不能少于0"
exit&nbsp;Function
end&nbsp;if
n2&nbsp;=&nbsp;Int(D&nbsp;*&nbsp;10^n&nbsp;+&nbsp;0.5)&nbsp;/&nbsp;10^n
End&nbsp;Function


nn=Int(D * 10^n + 0.5) / 10^n
引用 youshanzx 2002-6-15 07:05
不错,高手探讨,新手跟着多学一点,少走不少弯路,谢乐!!!



                                     -----------------------------------
                                        勿以恶小而为之,勿以善小而不为
引用 ail 2003-5-23 06:57
如果是通用的调用,选那位版主的呢?

查看全部评论(11)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 11:51 , Processed in 0.102963 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部