Pues es muy difícil saber que ocurre sin ver el código. Pero suponiendo que no haya ningún error en la programación, el fallo puede deberse a las limitaciones de la aritmética de como flotante. PAra ver un ejemplo de estas limitaciones prueba este ejemplo:
Private Sub Form_Load()
Dim x As Single
x = 1.1
x = x + 1.03
x = x - 1.2
MsgBox x
End Sub
Este código debería mostrar 0.93 en el mensaje, en cambio lo que vemos es 0.9300001. Es cierto que es un error muy pequeño, pero si esto sucede al hacer una suma y una resta, puede que al resolver cálculos más complejos el error crezca y llegue a ser significativo.
Si crees que tu problema puede deberse a eso tienes algunas opciones para solucionarlo. La primera es usar variables de tipo double si las estas usando de tipo single. En el ejemplo que te he puesto los cálculos saldrián correctos cambiando el tipo de la variable.
Otra opción es usar eltipo currency que almacena numeros de coma fija con 4 decimales. Pueden parecer pocos decimales pero en la mayoría de los casos no se necesita más y es probable que ese redondeo de decimales evite males mayores.