Der Prozessor und Rechnen - eine endlose Geschichte. Darüber liegt dann nochmal eine Softwareschicht, was es nicht besser macht.
Und Du machst es der Software besonders schwer!
Dieser Code funktioniert - überleg mal, warum ...
Dim pricea As Currency
Dim priceb As Currency
pricea = Ccur ("79,99")
priceb = Ccur ("239,97")
Dim qant As Integer
qant = Cint ("3")
pricea = pricea * qant
Msgbox Cstr (pricea) & Chr$ (10) & Cstr (priceb)
If pricea <> priceb Then
Msgbox "Fehler vom Gateway: PRICE_DP ist nicht PRICE * QUANTITY "
End If
Double rechnet mit zu vielen Nachkommastellen für diese Aufgabe (und hier zudem falsch). Nimm niemals zu genaue Datentypen, wenn Du es nicht brauchst.
Double = Ccur (value) ist auch keine gute Idee. Bleibe immer bei einem Datentyp (dazu zählt auch Dein Cint) - Du sparst Dir damit eine Menge Ärger.
Und: VERWENDE OPTION DECLARE! Dein Code hat gleich zweimal bei mir gemeckert.
Bernhard
PS: Nimm mal Deinen gegenwärtigen Code und füge eine Messagebox Cstr (pricea - priceb) an - dann siehst Du den Unterschied bzw. den Rechen-/Rundungsfehler in der bisherigen Variante.