Hi,

ich hab hier ein kleines Problem:

Rufe ich diese Funktion mit 189 auf bekomme ich als Ergebnis von d 37779,999 
anstatt 3780, was dann das Endergebnis verfälscht.
Kurz als Erklärung, in der Schweiz werden Rechnungsbeträge immer auf 5 Rappen 
zugunsten des Kunden gerundet. Geht auch wenn ich es mit carbon compiliere, in 
Cocoa mit Xojo dann jetzt nicht mehr.

Function runden_schweiz(myFloatValue as double) As double
dim d as Double
d = myFloatValue*20
return floor(d)/20


Norman schreibt:
Floating point values are NOT 100% precise on any processor.
This is a limitation of the manner in which floating point values are 
represented.

Soweit so gut, aber wie löse ich das Problem? Hat jemand eine Idee?

LG


Stefan


Antwort per Email an