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函数返回整数。
描述
返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
语法
Round(expression [,numdecimalplaces])
Round函数语法有如下几部分:
部分 描述
expression 必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。
#5
round是 四舍五入不能像上取整
#6
有一个办法
去掉你的数字的小数部分然后加1
去掉你的数字的小数部分然后加1
#7
TO:JustinYu(野马)、smilejiangjun(smile将军)
第一种情况能实现吗?4 -> 4
第一种情况能实现吗?4 -> 4
#8
Fix 函数
IIf(a - Fix(a) > 0, Fix(a) + 1, Fix(a))
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
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。
本示例说明 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))
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
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
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
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(啊风)
你够狠!
我的意思是越简单越好,用这样的判断我就不必问了
TO:zqfleaf(啊风)
你够狠!
#27
再看看还有没有好的方法,同时up一下
#28
自己编写嘛!
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function
#29
Double的值域多少?
Round(x-0.00000...001)+1
Round(x-0.00000...001)+1
#30
TO:ehom(?!)
x = 4 的时候你的答案是多少?
x = 3.99999999999999...6的时候答案是多少?
TO:mjcom(风声水起)
我地意思你地明白?判断地不要。不看清要求,斯拉斯拉地!
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
不过我觉得这样虽然简单,但是做判断绝对比做浮点运算的运行效率高!
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了
Dim s As Double
Dim i As Long
i = 0 - Int(0 - s)
OK了
#34
简单的写就是:
i = -Int(-s)
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函数返回整数。
描述
返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
语法
Round(expression [,numdecimalplaces])
Round函数语法有如下几部分:
部分 描述
expression 必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。
#5
round是 四舍五入不能像上取整
#6
有一个办法
去掉你的数字的小数部分然后加1
去掉你的数字的小数部分然后加1
#7
TO:JustinYu(野马)、smilejiangjun(smile将军)
第一种情况能实现吗?4 -> 4
第一种情况能实现吗?4 -> 4
#8
Fix 函数
IIf(a - Fix(a) > 0, Fix(a) + 1, Fix(a))
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
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。
本示例说明 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))
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
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
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
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(啊风)
你够狠!
我的意思是越简单越好,用这样的判断我就不必问了
TO:zqfleaf(啊风)
你够狠!
#27
再看看还有没有好的方法,同时up一下
#28
自己编写嘛!
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function
function MyInt(a as long)
if a>fix(a) then MyInt=a+1
end function
#29
Double的值域多少?
Round(x-0.00000...001)+1
Round(x-0.00000...001)+1
#30
TO:ehom(?!)
x = 4 的时候你的答案是多少?
x = 3.99999999999999...6的时候答案是多少?
TO:mjcom(风声水起)
我地意思你地明白?判断地不要。不看清要求,斯拉斯拉地!
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
不过我觉得这样虽然简单,但是做判断绝对比做浮点运算的运行效率高!
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了
Dim s As Double
Dim i As Long
i = 0 - Int(0 - s)
OK了
#34
简单的写就是:
i = -Int(-s)
i = -Int(-s)
#35
看来也就是这几种方法了,如果每别的更好的方法了,那么我今天晚上就结贴了