设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5747|回复: 5
打印 上一主题 下一主题

[其它] ACCESS中有没有类似roundup的函数

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-24 16:56:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在excel中可以使用:

ROUNDUP

远离零值,向上舍入数字。

语法

ROUNDUP(number,num_digits)

Number    为需要向上舍入的任意实数。

Num_digits    四舍五入后的数字的位数。

请问各位老大,在access中用什么函数达到此效果。谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-1-26 18:55:00 | 只看该作者
在ACCESS 中没有ROUNDUP,我也碰了一样的问题

不过我的是向下舍去,向上舍可以用:round([来源数字]+0.499999,保留位数)

加 0.499999是因为ACCESS 0.5就会向上舍入1
3#
发表于 2007-1-26 20:09:00 | 只看该作者
自定义函数
4#
发表于 2007-1-26 20:15:00 | 只看该作者
这个拿去改一改

Public Function MyRound(x As Double, Y As Integer)
Dim i As Integer, Dbla, Dblb, Dblc As Double, MyR As Long
Rem 示例:MyRound(5.25,1) 返回5.2
Rem >0.5进位、=0.5时逢单才进位
i = 1
If x < 0 Then i = -1

Dbla = Abs(x)
Dblc = Int(Dbla * 10 ^ Y)
Dblb = Dbla * 10 ^ Y - Dblc

If Dblb < 0.5 Then
MyR = Dblc
ElseIf Dblb = 0.5 Then     '0.5 可另改成你想要的进位标准
    If Right(Dblc, 1) Mod 2 = 1 Then
     MyR = Dblc + 1
    Else
     MyR = Dblc
    End If
ElseIf Dblb > 0.5 Then
MyR = Dblc + 1
End If

MyRound = MyR * i / 10 ^ Y

End Function
5#
 楼主| 发表于 2007-1-26 20:40:00 | 只看该作者
谢谢zxzx2733的自定义函数。其实前两天用IIF和int结合解决了这个问题,不过你的这个更好。
6#
发表于 2009-7-18 15:54:35 | 只看该作者
学习了,有没有标准的例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-23 09:42 , Processed in 0.086288 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表