Is there a bug in the Currency setting in VB?

The following works fine if the wsCheck is >= to
the first wsExp.
Example: wsCheck = $30.00
wsExp(1)= 10
wsExp(2)= 10
wsExp(3)= 30
The $30.00 > 10.

But if the wsCheck is < the first wsExp,
Example: wsCheck = $5.00
wsExp(1)= 10
wsExp(2)= 10
wsExp(3)= 30
it takes the $5.00 as > 10.

I've tried making the variables "Currency,
but still does not work right.

My Code
-------
Dim wsCheck, wsPymt, wsExp, wsDiff As Double
wsCheck = Text1(10)
Do Until rs5.EOF = True
wsExp = rs5.Fields("Expected_Amt")

If wsCheck >= wsExp Then
wsPymt = wsExp
wsCheck = wsCheck - wsExp
Else
If wsCheck > 0 Then
wsPymt = wsCheck
wsDiff = wsCheck - wsExp
wsCheck = wsCheck - wsExp
Else
wsPymt = 0
wsDiff = wsExp * -1
End If
End If
rs5.Edit
rs5.Fields("Payment") = wsPymt
rs5.Fields("Difference") = wsDiff
rs5.Update
rs5.MoveNext
Loop
Data5.Refresh


Any help given will be appreciated,

Magic