Dim dValue As Double
Select Case Int(Right(CStr(Int(dValue * 1000)), 1))
    Case 0, 1, 2, 3, 4
        dValue = Int(dValue * 100) / 100
    Case Else
        dValue = Int(dValue * 1000) / 100 + 0.01
End Select

解决方案 »

  1.   

    VB中有個四舍五入的函数 Round
      

  2.   

    1。定义一个变量,小数位为两位,再将两个小数相乘的结果付值给这个变量,
    2。定义一个PARADOX数据库,字段只有一个,将该字段的小数位规定为两位!再将两个小数相乘的结果付值给该字段,
      

  3.   

    1。定义一个变量,小数位为两位,再将两个小数相乘的结果付值给这个变量,
    2。定义一个PARADOX数据库,字段只有一个,将该字段的小数位规定为两位!再将两个小数相乘的结果付值给该字段,
      

  4.   

    格式化显示不之行不行了!!!
    format(相乘的结果,"##########.00")
      

  5.   

    就是Format,像HungryBoy(饥饿的男孩)说的那样,我试过了。
      

  6.   

    Round(45.232 * 24242.2342, 2)
      

  7.   

    还是自己写函数吧!VB提供的如FORMAT、ROUND都做不到四舍五入的。
    我自己写的一个函数你试试。
    '四舍五入
    Function AtoB45(a As Integer, b As Integer) As Double
        Dim c As Double
        c = a / b
        If c - Int(c) > 0.5 Then
            c = Int(c) + 1
        Else
            c = Int(c)
        End If
        AtoB45 = c
    End Function
      

  8.   

    Private Sub Command1_Click()
        Dim a As String
        Dim b As String
        Dim c As String
        a = 5.2655
        b = 3.2568
        Print Int(a * b * 100 + 0.5) / 100 '17.15
        Print a * b   '17.1486804
        
    End Sub
     
     
      

  9.   

    '哦 错了 是
    Private Sub Command1_Click()
        Dim a As Single, b As Single, c As Single
        a = 5.2655
        b = 3.2568
        Print Int(a * b * 100 + 0.5) / 100 '17.15
        Print a * b  '17.14868
        
    End Sub'四舍六入五成双  这个代码要不?
      

  10.   

    50分这么容易!!看这个函数!MainNumber是要转化的数,Number要保留的位数Function Round(MainNumber As Double, Number As Integer) As Double
    Dim C As Double
    Dim D As String
    C = Int((MainNumber * 10 ^ (Number + 1)))
    D = Right(CStr(C), 1)
      If CDbl(D) >= 5 Then
          C = C + 10
          C = Int(C / 10)
      Else
          C = Int(C / 10)
      End If
      Round = C / 10 ^ Number
    Exit Function
    End Function
      

  11.   

    回复人:xxlroad(土八路) (2001-7-5 13:05:17) 
    Private Sub Command1_Click()
        Dim a As Single, b As Single, c As Single
        a = 5.2655
        b = 3.2568
        Print Int(a * b * 100 + 0.5) / 100 '17.15
        Print a * b  '17.14868
        
    End Sub
    回复人:KitSdk(kitsdk) (2001-7-9 12:41:34)  得0分 看这个函数!MainNumber是要转化的数,Number要保留的位数Function Round(MainNumber As Double, Number As Integer) As Double
    Dim C As Double
    Dim D As String
    C = Int((MainNumber * 10 ^ (Number + 1)))
    D = Right(CStr(C), 1)
      If CDbl(D) >= 5 Then
          C = C + 10
          C = Int(C / 10)
      Else
          C = Int(C / 10)
      End If
      Round = C / 10 ^ Number
    Exit Function
    End Function
     
      

  12.   

    to:KitSdk(kitsdk) 请你用负数测试一下
    Print Round(-15.55, 1) '-15.5
    Print Round(15.55, 1) '15.6'四舍五入函数
    'MainNumber是要转化的数,Number要保留的位数
    Private Function CRound(MainNumber As Double, Number As Double) As Double
        If MainNumber < 0 Then
            CRound = -Int(-MainNumber * 10 ^ Number + 0.5) / 10 ^ Number
        Else  'MainNumber >= 0
            CRound = Int(MainNumber * 10 ^ Number + 0.5) / 10 ^ Number
        End If
    End FunctionPrint CRound(-15.55, 1) '-15.6
    Print CRound(15.55, 1) '15.6'你如果是处理实验数据的话
    '大概知道四舍六入五成双吧
    '这个代码也随便给你吧?
    'MainNumber是要转化的数,Number要保留的位数
    Private Function PhRound(MainNumber As Double, Number As Double) As Double
        Dim Ph As Double
        Ph = MainNumber * 10 ^ Number
        PhRound = (Ph Mod (Abs(Ph) + 2)) / 10 ^ Number
    End Function