Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Kommazahlen (Float) Sortieren
Bronstein - Mi 22.08.07 15:26
Titel: Kommazahlen (Float) Sortieren
Wie kann ich Kommazahlen sortieren.
Datum sortiere ich so:
Compare := Trunc(StrToDateTime(TextToSort1)-StrToDateTime(TextToSort2))+1; //Datum
Integer so:
Compare := StrToInt(TextToSort1)-StrToInt(TextToSort2); //Zahl
Strings so:
Compare := CompareText(TextToSort1, TextToSort2); //Text
Kommazahlen so:
Compare := Trunc(StrToFloat(TextToSort1)-StrToFloat(TextToSort2))-1;
Bei den Kommazahlen funktioniert das aber nicht, da ich ja die Zahlen runde. Es soll aber genau sortiert werden, sprich mit Dezimalstellen. Wie mach ich das??
Narses - Mi 22.08.07 16:39
Moin!
Dafür gibt es doch schon fertige Funktionen in der Unit Math: :idea: ;)
| DOH hat folgendes geschrieben: |
Unit: Math
Kategorie: Vergleich
Delphi-Syntax:
Delphi-Quelltext 1: 2: 3: 4: 5:
| function CompareValue(const A, B: Integer): TValueRelationship; overload; function CompareValue(const A, B: Int64): TValueRelationship; overload; function CompareValue(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload; function CompareValue(const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload; function CompareValue(const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload; |
Beschreibung
Mit CompareValue können Sie das Verhältnis zwischen zwei numerischen Werten bestimmen. Beim Vergleich von Gleitkommawerten können Sie eine maximale Differenz angeben, sodass Werte, die innerhalb dieser Differenz liegen, als gleich betrachtet werden.
A und B sind die zu vergleichenden Werte.
Epsilon ist die maximale Differenz, mit der A und B noch als gleich angesehen werden.
CompareValue gibt folgende Werte zurück:
LessThanValue, wenn A kleiner als B ist (um mehr als Epsilon, wenn A und B Gleitkommazahlen sind).
EqualsValue, wenn A gleich B ist (identisch oder innerhalb von Epsilon, wenn A und B Gleitkommazahlen sind).
GreaterThanValue, wenn A größer als B ist (um mehr als Epsilon, wenn A und B Gleitkommazahlen sind). |
cu
Narses
Bronstein - Mi 22.08.07 18:36
Danke.
Jetzt ist mir gerade aufgefallen, dass das mit dem Datum Zeit sortieren nicht funktioniert. Hast du da vielleicht auch einen Tipp für mich
Philipp_Reitter - Mi 22.08.07 19:22
was meinst du genau mit kommazahlen sortieren?
Narses - Mi 22.08.07 22:08
Moin!
Bitte. ;)
Bronstein hat folgendes geschrieben: |
| Jetzt ist mir gerade aufgefallen, dass das mit dem Datum Zeit sortieren nicht funktioniert. Hast du da vielleicht auch einen Tipp für mich |
Klar, aber hast du keine Delphi-Online-Hilfe? :gruebel:
OK, zum Tipp: 8)
- Die gesuchte/n Funktion/en ist/sind aus der Unit DateUtils
- Der Funktionsname beider Teekesselchen fängt mit einem "C" an und hört mit einem "e" auf
- Der Funktionsname des einen Teekesselchens ist länger, als der des anderen
- Die Teekesselchen-Funktion mit dem längeren Namen macht auch mehr, als die mit dem kürzeren
Na, da bin ich aber mal gespannt, ob du das Rätsel knackst... :P :roll:
cu
Narses
Bronstein - Mi 22.08.07 22:14
Super, nochmals Danke.
Für alle die Funktion heißt:
CompareDateTime
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!