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

解决方案 »

  1.   

    Round函数 返回 描述返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。语法Round(expression [,numdecimalplaces])Round函数语法有如下几部分:部分 描述 
    expression 必需的。要进行四舍五入运算的数值表达式。 
    numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则Round函数返回整数。 
      

  2.   

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

  3.   

    TO:JustinYu(野马)、smilejiangjun(smile将军) 第一种情况能实现吗?4   -> 4
      

  4.   

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

  5.   

    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
      

  6.   

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

  7.   

    这样试试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。
      

  8.   

    TO:qdcb(天冬草) 这个比较有创意。
      

  9.   

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

  10.   

    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))
      

  11.   

    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
      

  12.   

    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
      

  13.   

    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
      

  14.   

    TO:huiwww(十足菜鸟) 我的意思是越简单越好,用这样的判断我就不必问了TO:zqfleaf(啊风) 你够狠!
      

  15.   

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

  16.   

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

  17.   

    TO:ehom(?!) x = 4 的时候你的答案是多少?
    x = 3.99999999999999...6的时候答案是多少?TO:mjcom(风声水起) 我地意思你地明白?判断地不要。不看清要求,斯拉斯拉地!
      

  18.   

    错了,应该是Int(x-0.00000...001)+1,我不记得Double的值域了!就是减能表示的最小的一个小数!呵呵!至于结果吗?我已经很就没用过VB了!应该可以咯!4-0.00000...001=3.99999...999
    3+1=4不过我觉得这样虽然简单,但是做判断绝对比做浮点运算的运行效率高!
      

  19.   

    TO:ehom(?!) 哦,这样看来的确可以。不过这样变程总觉得不合适
      

  20.   

    给我分吧,这么简单的问题:)Dim s As Double
    Dim i As Longi = 0 - Int(0 - s)OK了
      

  21.   

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