double werte vergleichen



  • Hallo,

    Ich habe folgendes Problem: Ich möchte überprüfen ob ein Wert innerhalb zweier toleranz bereich liegt. Dies mache ich folgender massen

    If( untereToleranz < Value )
    ....

    Else If( obereToleranz > Value )
    ....

    Alle Werte sind Doubl-Werte. Das Problem ist jetzt, dass man double Werte nicht einfach so vergleichen kann, da sie auf den letzten Kommastellen abweichungen haben. Ich bin jetzt auf der Suche nach einer Standardfunktion, welche double Werte vergleicht. Kenn jemand so etwas? oder muss man es selber programmieren?



  • du solltest double-werte nicht auf gleichheit untersuchen, aber die vergleichsoperatoren < und > funktionieren normalerweise problemlos. sie sind nebenbei auch die standardfunktionen für den vergleich.



  • in welchem bereich befinden sich die werte? vielleicht hilft es, mit 10000 zu multiplizieren und dann in 'long' umzuwandeln?
    🙂



  • Hallo,
    > und < funktioniert leider auch nicht immer. Die untere toleranz war 45.00000000039 und der Wert 45.00000000000000. Die Werte sollten aber gleich sein.

    Das mit dem Long habe ich mir auch schon überlegt. Aber der Long ist zu klein (ist nur 2^31). Ich müsste den Wert bis zur 6. Nachkommastelle vergleichen.

    P.S.
    In delphi gibt es extra funktion, bei denen man einen epsilon wert bestimmen kann um double-werte zu vergleichen.


Anmelden zum Antworten