看这个函数!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
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
我写过一个函数
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
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
http://www.csdn.net/expert/topic/192/192254.shtm