Office中国论坛/Access中国论坛

标题: ACCESS中有没有类似roundup的函数 [打印本页]

作者: lupo    时间: 2007-1-24 16:56
标题: ACCESS中有没有类似roundup的函数
在excel中可以使用:

ROUNDUP

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

语法

ROUNDUP(number,num_digits)

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

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

请问各位老大,在access中用什么函数达到此效果。谢谢。
作者: SUQUANJIN    时间: 2007-1-26 18:55
在ACCESS 中没有ROUNDUP,我也碰了一样的问题

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

加 0.499999是因为ACCESS 0.5就会向上舍入1
作者: zxzx2733    时间: 2007-1-26 20:09
自定义函数
作者: zxzx2733    时间: 2007-1-26 20:15
这个拿去改一改

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

作者: lupo    时间: 2007-1-26 20:40
谢谢zxzx2733的自定义函数。其实前两天用IIF和int结合解决了这个问题,不过你的这个更好。
作者: asun    时间: 2009-7-18 15:54
学习了,有没有标准的例子。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3