菜问题:vb6里面有没有向上取整的函数

时间:2022-12-10 23:15:21
4   -> 4
4.1 -> 5
4.5 -> 5
别告诉我要判断,我是那样写腻了才问的。

35 个解决方案

#1


up

#2


好像没有唉!

#3


Round(x+0.5)就可以了比如 Round(4.1+0.5)=5

#4


Round函数 返回 

描述

返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

语法

Round(expression [,numdecimalplaces])

Round函数语法有如下几部分:

部分 描述 
expression 必需的。要进行四舍五入运算的数值表达式。 
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。 

#5


round是 四舍五入不能像上取整

#6


有一个办法
去掉你的数字的小数部分然后加1

#7


TO:JustinYu(野马)、smilejiangjun(smile将军) 

第一种情况能实现吗?4   -> 4



#8


Fix 函数

IIf(a - Fix(a) > 0, Fix(a) + 1, Fix(a))

#9


Function MyIntUp(Byval n as Single)as Single
    Dim TempSng as Single
    
    TempSng=Int(n)
    if n=TempSng then
        MyIntUp=TempSng
    Else
        MyIntUp=TempSng+1
    End if
    
End Function

#10


好,谢谢。
可是真的就没有不用判断的吗?

#11


TO:zyl910(910:分儿,我来了!) 
谢谢支持,不过最好你看清楚我问的。要是这样写,谁都会。

#12


真的没有!!!

#13


int(x)+1

#14


sorry 4--->4 不行

#15


这样试试abs(int(0-x))
本示例说明 Int 及 Fix 函数在返回某数值的整数部分时有何不同。当参数为负数时,Int 函数返回小于或等于该参数之最大整数,而 Fix 函数则返回大于或等于该参数之最小整数。

Dim MyNumber
MyNumber = Int(99.8)   ' 返回 99。
MyNumber = Fix(99.2)   ' 返回 99。

MyNumber = Int(-99.8)   ' 返回 -100。
MyNumber = Fix(-99.8)   ' 返回 -99。

MyNumber = Int(-99.2)   ' 返回 -100。
MyNumber = Fix(-99.2)   ' 返回 -99。

#16


两个小时了,我还以为是很简单的问题呢,这么多人都没能解决。

#17


TO:qdcb(天冬草) 

这个比较有创意。

#18


abs(int(-x))就可以,我一直用的。

#19


Dim i As Double
    i = 4
    MsgBox Int(i) + Sgn(i - Int(i))
    i = 4.1
    MsgBox Int(i) + Sgn(i - Int(i))
    i = 4.5
    MsgBox Int(i) + Sgn(i - Int(i))

#20


漂亮

#21


还有没有其他的好方法呢

#22


fountion newnum(x as double) as int
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end fountion

#23


fountion newnum(x as double) as integer
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end fountion
不好意思,类型少写几个字母,用惯了VC

#24


function newnum(x as double) as integer
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end function
不好意思,类型少写几个字母,用惯了VC

#25


round(x+0.4999999999999999999)

#26


TO:huiwww(十足菜鸟) 

我的意思是越简单越好,用这样的判断我就不必问了

TO:zqfleaf(啊风) 

你够狠!

#27


再看看还有没有好的方法,同时up一下

#28


自己编写嘛!
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function

#29


Double的值域多少?
Round(x-0.00000...001)+1

#30


TO:ehom(?!) 

x = 4 的时候你的答案是多少?
x = 3.99999999999999...6的时候答案是多少?

TO:mjcom(风声水起) 

我地意思你地明白?判断地不要。不看清要求,斯拉斯拉地!

#31


错了,应该是Int(x-0.00000...001)+1,我不记得Double的值域了!就是减能表示的最小的一个小数!呵呵!至于结果吗?我已经很就没用过VB了!应该可以咯!

4-0.00000...001=3.99999...999
3+1=4

不过我觉得这样虽然简单,但是做判断绝对比做浮点运算的运行效率高!

#32


TO:ehom(?!) 

哦,这样看来的确可以。不过这样变程总觉得不合适

#33


给我分吧,这么简单的问题:)

Dim s As Double
Dim i As Long

i = 0 - Int(0 - s)

OK了

#34


简单的写就是:
i = -Int(-s)

#35


看来也就是这几种方法了,如果每别的更好的方法了,那么我今天晚上就结贴了

#1


up

#2


好像没有唉!

#3


Round(x+0.5)就可以了比如 Round(4.1+0.5)=5

#4


Round函数 返回 

描述

返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

语法

Round(expression [,numdecimalplaces])

Round函数语法有如下几部分:

部分 描述 
expression 必需的。要进行四舍五入运算的数值表达式。 
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。 

#5


round是 四舍五入不能像上取整

#6


有一个办法
去掉你的数字的小数部分然后加1

#7


TO:JustinYu(野马)、smilejiangjun(smile将军) 

第一种情况能实现吗?4   -> 4



#8


Fix 函数

IIf(a - Fix(a) > 0, Fix(a) + 1, Fix(a))

#9


Function MyIntUp(Byval n as Single)as Single
    Dim TempSng as Single
    
    TempSng=Int(n)
    if n=TempSng then
        MyIntUp=TempSng
    Else
        MyIntUp=TempSng+1
    End if
    
End Function

#10


好,谢谢。
可是真的就没有不用判断的吗?

#11


TO:zyl910(910:分儿,我来了!) 
谢谢支持,不过最好你看清楚我问的。要是这样写,谁都会。

#12


真的没有!!!

#13


int(x)+1

#14


sorry 4--->4 不行

#15


这样试试abs(int(0-x))
本示例说明 Int 及 Fix 函数在返回某数值的整数部分时有何不同。当参数为负数时,Int 函数返回小于或等于该参数之最大整数,而 Fix 函数则返回大于或等于该参数之最小整数。

Dim MyNumber
MyNumber = Int(99.8)   ' 返回 99。
MyNumber = Fix(99.2)   ' 返回 99。

MyNumber = Int(-99.8)   ' 返回 -100。
MyNumber = Fix(-99.8)   ' 返回 -99。

MyNumber = Int(-99.2)   ' 返回 -100。
MyNumber = Fix(-99.2)   ' 返回 -99。

#16


两个小时了,我还以为是很简单的问题呢,这么多人都没能解决。

#17


TO:qdcb(天冬草) 

这个比较有创意。

#18


abs(int(-x))就可以,我一直用的。

#19


Dim i As Double
    i = 4
    MsgBox Int(i) + Sgn(i - Int(i))
    i = 4.1
    MsgBox Int(i) + Sgn(i - Int(i))
    i = 4.5
    MsgBox Int(i) + Sgn(i - Int(i))

#20


漂亮

#21


还有没有其他的好方法呢

#22


fountion newnum(x as double) as int
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end fountion

#23


fountion newnum(x as double) as integer
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end fountion
不好意思,类型少写几个字母,用惯了VC

#24


function newnum(x as double) as integer
If x> Int(x) Then
newnum=Int(Text1.Text) + 1
Else
newnum=Int(Text1.Text)
End If
end function
不好意思,类型少写几个字母,用惯了VC

#25


round(x+0.4999999999999999999)

#26


TO:huiwww(十足菜鸟) 

我的意思是越简单越好,用这样的判断我就不必问了

TO:zqfleaf(啊风) 

你够狠!

#27


再看看还有没有好的方法,同时up一下

#28


自己编写嘛!
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function

#29


Double的值域多少?
Round(x-0.00000...001)+1

#30


TO:ehom(?!) 

x = 4 的时候你的答案是多少?
x = 3.99999999999999...6的时候答案是多少?

TO:mjcom(风声水起) 

我地意思你地明白?判断地不要。不看清要求,斯拉斯拉地!

#31


错了,应该是Int(x-0.00000...001)+1,我不记得Double的值域了!就是减能表示的最小的一个小数!呵呵!至于结果吗?我已经很就没用过VB了!应该可以咯!

4-0.00000...001=3.99999...999
3+1=4

不过我觉得这样虽然简单,但是做判断绝对比做浮点运算的运行效率高!

#32


TO:ehom(?!) 

哦,这样看来的确可以。不过这样变程总觉得不合适

#33


给我分吧,这么简单的问题:)

Dim s As Double
Dim i As Long

i = 0 - Int(0 - s)

OK了

#34


简单的写就是:
i = -Int(-s)

#35


看来也就是这几种方法了,如果每别的更好的方法了,那么我今天晚上就结贴了