Oder Steigerung vor der Sortierung mit einer Zahl addieren das alles im Plusbereich liegt und nach dem sortieren diese Zahl wieder abziehen, dann brauchst du keine eigene Sortierroutine.Frogger hat geschrieben:Dann bleibt mir wohl nichts anderes übrig.
SortStructuredList sortiert Floats falsch. Bug?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das ist wirklich ne gute idee.
aber man muss drauf achten, dass man die genauigkeit nicht verlässt.
den "offset" so gering wie möglich halten.
also, wenn die "steigerung" ursprünglich in 100stel schritten vorliegt,
ist es tötlich, 10Mio zu addieren für die sortierung.
wenn der bereich von "steigerung" recht groß ist,
evtl. auf double ausweichen, um auf nummer sicher zu gehen.
achja.. natürlich könnte auch ein umsteigen auf fixkomma abhilfe schaffen...
aber man muss drauf achten, dass man die genauigkeit nicht verlässt.
den "offset" so gering wie möglich halten.
also, wenn die "steigerung" ursprünglich in 100stel schritten vorliegt,
ist es tötlich, 10Mio zu addieren für die sortierung.
wenn der bereich von "steigerung" recht groß ist,
evtl. auf double ausweichen, um auf nummer sicher zu gehen.
achja.. natürlich könnte auch ein umsteigen auf fixkomma abhilfe schaffen...

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Die Steigerung wird in % angegeben also wäre das dann kein Problem.
Den "offset" hab ich jetzt bei 1000.
Es wird nicht mehr als +100% angezeigt aber es ist durchaus möglich auf -1000% zu kommen.
Beispielsweise nach einer heftigen Schlacht mit viel Verlust. (es ist für ein Allytool, falls sich jemand wundert)
Den "offset" hab ich jetzt bei 1000.
Es wird nicht mehr als +100% angezeigt aber es ist durchaus möglich auf -1000% zu kommen.
Beispielsweise nach einer heftigen Schlacht mit viel Verlust. (es ist für ein Allytool, falls sich jemand wundert)
[PB4.20]
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Hatte ein ähnliches Problem
evtl kann dir das ja helfen.
Obwohl val fom type float ist hat das Sortieren mit Long funktioniert.
Hab aber zu Sicherheit beides auf Double geändert
evtl kann dir das ja helfen.
Code: Alles auswählen
Structure dist
nr.l
val.f
EndStructure
Global NewList vlist.dist()
SortStructuredList(vlist(), 0, OffsetOf(dist\val), #PB_Sort_Long )
Hab aber zu Sicherheit beides auf Double geändert
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
das halte ich eher für zufall.
du müsstest die routine mal nachtesten mit einem ausreichens großen wertebereich.
wenn nämlich ersteinmal der exponent unterschiedlich genug ist,
dann kann eine interpretation als Long auch nicht mehr greifen.
du müsstest die routine mal nachtesten mit einem ausreichens großen wertebereich.
wenn nämlich ersteinmal der exponent unterschiedlich genug ist,
dann kann eine interpretation als Long auch nicht mehr greifen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- NicTheQuick
- Ein Admin
- Beiträge: 8808
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken