IEEE浮点数的表示方法你可以看看的,并不是你想象的那么简单,但是你可以用四舍五入法搞定:Public Function fRound(num As Variant, n As Long) As String fRound = Format(num, IIf(n > 0, "0." & String(n, "0"), "0")) End FunctionPrivate Sub Command1_Click() Dim a As Double a = 1234.56789 Debug.Print Fix(a) Debug.Print Int(a) Debug.Print CInt(a) Debug.Print CLng(a) Debug.Print fRound(a, 0) Debug.Print fRound(a, 3) End Sub执行後在 VB 的即时运算视窗出现以下结果: 1234 1234 1235 1235 1235 1234.568
fRound = Format(num, IIf(n > 0, "0." & String(n, "0"), "0"))
End FunctionPrivate Sub Command1_Click()
Dim a As Double
a = 1234.56789
Debug.Print Fix(a)
Debug.Print Int(a)
Debug.Print CInt(a)
Debug.Print CLng(a)
Debug.Print fRound(a, 0)
Debug.Print fRound(a, 3)
End Sub执行後在 VB 的即时运算视窗出现以下结果: 1234
1234
1235
1235
1235
1234.568
---------------
这是确定的。不用怀疑,呵呵。这样更准确些。具体在网上baidu一下吧。