![]() |
AW: Extended To String mit dekadischen Einheiten
Ersmal: Nicht Extended verwenden, sondern Double.
Im Grunde was Extended nicht für die Verwendung vorgesehen, sondern "nur" für die internen Berechnungen der FPU. In 64 Bit gibt es Extended daher auch nicht mehr. (der Delphi-Compiler verwendet an der Stelle "heimlich" Double) Extended kann bis zu 4951 Nachkommastellen haben und Double auch immernoch 324. Wenn es nicht genau 0 wird, dann die kann Schleife viel öfters durchlaufen, als gewollt. |
AW: Extended To String mit dekadischen Einheiten
Zitat:
. . . überarbeitet |
AW: Extended To String mit dekadischen Einheiten
Und bitte übernimm nicht den Tippfehler von himitsu. Es heißt Epsilon und nicht Expsilon. :roll:
|
AW: Extended To String mit dekadischen Einheiten
ups :shock:
|
AW: Extended To String mit dekadischen Einheiten
Neee, das ist doch kein Fehler ... war nur von Expstep geguttenbergt. :oops:
|
AW: Extended To String mit dekadischen Einheiten
Zunächst: Danke für die Funktion! Habe gerade genau nach so etwas gesucht.
Ist die aktuellste Version im Beitrag #5? Wenn ja, dann ist dort Tera immer noch falsch geschrieben. Zudem sollte es vermutlich Eliminate statt Eleminate heißen (wenn damit "eliminieren" gemeint ist). Meine eigentliche Frage bezieht sich jedoch auf die Anzahl der Vorkommastellen. Ist hierfür Accuracy vorgesehen? Wie kann ich denn festlegen, dass ab 4 Vorkommastellen in die nächste Einheit gewechselt werden soll?
Delphi-Quellcode:
liefert "1E3 M"
FloatToStrS(1000000000, True, True, '', 3, 0)
Delphi-Quellcode:
liefert "1.000 M"
FloatToStrS(1000000000, True, True, '', 4, 0)
Wie komme ich denn zu "1 G"? |
AW: Extended To String mit dekadischen Einheiten
|
AW: Extended To String mit dekadischen Einheiten
Zitat:
|
AW: Extended To String mit dekadischen Einheiten
Zitat:
FloatToStrS(1000000000, False, False, 6, 0) sollte 1 G ergeben. |
AW: Extended To String mit dekadischen Einheiten
Sorry, aber irgendwie passt das nicht. Ist jetzt noch falscher als vorher.
Zum Testen:
Delphi-Quellcode:
Erwartete Ausgabe:
for i := 0 to 9 do
begin Number := Power(10, i); s := s + FloatToStrS(Number, False, False, '', 3, 0) + #13#10; end; ShowMessage(s);
Code:
Alte Version:
1
10 100 1 Kilo 10 Kilo 100 Kilo 1 Mega 10 Mega 100 Mega 1 Giga
Code:
Neue Version:
1
10 100 1E3 10 Kilo 100 Kilo 1E3 Kilo 10 Mega 100 Mega 1E3 Mega
Code:
0 Kilo
0 Kilo 0 Kilo 1 Kilo 0 Mega 0 Mega 1 Mega 0 Giga 0 Giga 1 Giga |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz