VB单精度型运算的有关问题

VB单精度型运算的问题
我定义了3个单精度(Single)变量a,b,c
a=1
b=0.001
c=a/b
这个c本来应该等于1000,但算出来却是999.9999,这是怎么回事?如何解决?谢谢!

但如果
b=0.1,则c=10
b=0.01,则c=100
b=0.0001,则c=10000
唯独当b=0.001的时候,c不等于1000,而是等于999.9999


------解决方案--------------------
用10进制小数不能精确表示某些三进制小数0.1(3)=0.33333333333……(10)
同理,用二进制小数也不能精确表示某些10进制小数。

Dim a As Single
Dim b As Single
Dim c As Single

a = 1
b = 0.001
c = a / b
Debug.Print c '999.9999
Debug.Print Format(c, "#") '1000

------解决方案--------------------
因为b=0.001保存不准确(2进制保存小数的固有问题,事实上是个近似数)所以,你运算后,是个近似数,很正常
------解决方案--------------------
VB code

Option Explicit

Private Sub Command1_Click()
    Dim a As Integer
    Dim b As Double
    a = 1
    b = 0.0001
    Debug.Print a / b
End Sub