![]() |
Re: Frage zu Strings
Inzwischen sollte klar sein, dass deine Messwerte als Strings immer mehr Platz benötigen, als ein binärer Datentyp wie Single, Real oder Double.
Jetzt kommt es noch auf den Wertebereich und die Genauigkeit an. Man könnte mit einem Festkommaformat viel an Platz und Gewschwindigkeit verbessern. Angenommen, du bräuchtest nur eine Nachkommastelle. Das entspräche (aufgerundet )4 Bit. Ein Integer mit 27 Bit+(1Bit Vorzeichen) für die Vorkomma und 4 Bit für die Nachkommastellen wäre dann sehr effizient. |
Re: Frage zu Strings
Warum nimmst Du denn dann keinen Single?
Müsste doch reichen für Deine Zwecke...
Code:
Typ Bereich Signifikante Stellen Größe in Byte
Real48 -2,9 x 10^39 .. 1,7 x 10^38 11-12 6 Single -1,5 x 10^45 .. 3,4 x 10^38 7-8 4 Double -5,0 x 10^324 .. 1,7 x 10^308 15-16 8 Extended -3,6 x 10^4951 .. 1,1 x 10^4932 10-20 10 Comp -2^63+1 .. 2^63 1 10-20 8 |
Re: Frage zu Strings
Zitat:
Zum Umwandeln in Real kannst du dir dann etwa solche Funktionen basteln:
Delphi-Quellcode:
Die Speicherung deiner Datensätze als Integer dürfte ziemlich effizient sein, ein Integer benötigt nur 4 Byte.
function RealToMeinFormat(const Value: Real): Integer;
begin Result := Trunc(Value * 100); end; function MeinFormatToReal(const Value: Integer): Real; begin Result := (Value div 100) + (Value mod 100) / 100; end; //Nachtrag: @RavenIV: Single ist ziemlich ungenau bei einer festen Anzahl an Nachkommastellen. Er hat 2 Nachkommastellen bei seinen Daten und das wird bei Single schnell ungenau. Beispiel: 1,73 wird bei Single zu 1,73000001907349. Deswegen würde ich ein Integer bevorzugen, hier kann es keine Rundengsfehler geben und benötigt genauso viel Speicherplatz wie ein Single. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 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