Hallo zusammen!
Bin bei cSharp noch neuer und hab eigentlich bei allen vorangegangenen Programmierspracher gelernt niemals Double Werte auf Gleichheit zu prüfen..
Hab den Vergleich dann immer in etwa so umgesetzt:
C#-Quelltext
1: 2: 3: 4:
| public static bool isDoubleEqual(double a, double b, double eps) { return Math.Abs(a - b) <= eps; } |
Ok dann finde ich auf der Msdn raus, dass die Double Klasse den Operator
"Double.Equality" anbietet um festzustellen ob ein Doublewert mit dem anderen Ident ist ... steht auch so in der Beschreibung dazu
Und dann erklärt mir auch noch ein Bekannter, dass ich unter C# auf einen double Wert die
.Equals() Operation ausführen kann und dies sicher ist...
So, soweit so gut .... Nun bin ich schon etwas stutzig und meine Frage sind unter C# Double Werte plötzlich sicher ???
Hab auch schon gegoogelt und antworten gefunden welche dazu Ja als auch nein sagen.....
Also was sagt ein C# Kenner dazu ... weiterhin bei meiner alten Funktion bleiben oder einfach die angebotenen Operatoren nutzen?
Desweiteren stellt sich mir die Frage, falls ich meine alte Funktion nutzen muss wie klein ich das
Epsilon wählen muss, da ich diesmal mit teilweise wirklich
enorm niedrigen Werten rechnen muss....
Danke & lg,
Wolfi