用四舍五入 处理一下 rkje 的值

解决方案 »

  1.   

    single无法准确表示变量的值。必须用format进行四舍五入。
      

  2.   

    用fromat 不能准确的四舍五入
    我写过一个函数
      

  3.   

    看这个函数!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
      

  4.   

    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
      

  5.   

    http://www.csdn.net/expert/topic/181/181702.shtm
    http://www.csdn.net/expert/topic/192/192254.shtm
      

  6.   

    选用currency的目的就是为了精确