Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String --> Single Single-->String (https://www.delphipraxis.net/90478-string-single-single-string.html)

Klaus01 18. Apr 2007 09:47

Re: String --> Single Single-->String
 
Wenn Du dem spanischen ein wenig mächtig bist -> http://www.clubdelphi.com/foros/showthread.php?t=30929
Oder ein wenig einfacher:

Delphi-Quellcode:
function StrToSingle(St : String) : Single;
var
 Code : Integer;
begin
     Val(St,Result,Code);
end;
Grüße
Klaus

TeronG 18. Apr 2007 09:59

Re: String --> Single Single-->String
 
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
function StrToSingle(St : String) : Single;
var
 Code : Integer;
begin
     Val(St,Result,Code);
end;

:gruebel:
macht aus '1,2345678' eine 1
und aus '1.2345678' eine 1,2345677614212

edit: Wo ist nur Hagen (oder einer der andern Mathe/Zahlenprofi's) wenn man ihn mal brauch!? :mrgreen:

jfheins 18. Apr 2007 10:05

Re: String --> Single Single-->String
 
Könnte es sein, dass 1,2345678 als 1,2345677614212 gespeichert wird? Denn bekanntlicherweise sind float werte sowiso nur Nährerungswerte, und ungenau ...

Wenn es dir nur darum geht, eine kurze Zahl im String zu haben, kannst du sie ja auch mit 10000000 multiplizieren und runden ;)

Robert Marquardt 18. Apr 2007 10:12

Re: String --> Single Single-->String
 
Warum verfolgst du meine Idee nicht weiter? Einfach die binaere Repraesentation des Single in einen Hex-String verwandeln und wieder zurueck. Dabei geht kein Bit verloren.
Bei der Konversion von der binaeren Repraesentation ins Dezimalsystem ergeben sich zwingend Ungenauigkeiten. Jede Zahlendarstellung mit endlicher Stellenanzahl umfasst nur eine endliche Menge von Zahlen. Entsprechend gibt es im Zahlenraum viele Luecken. Bei verschiedenen Zahlendarstellungen (binaer, dezimal) sitzen die Luecken an unterschiedlichen Stellen. Bei der Umwandlung werden daher zwingend Zahlen die in eine Luecke fallen wuerden auf die naechstliegende Zahl geaendert.

DelphiManiac 3. Mai 2007 08:32

Re: String --> Single Single-->String
 
@Robert

Hi,
ich glaube das mit der Hexdarstellung werde ich so machen oder so ähnlich, aber mein Problem liegt ausserdem noch hier:

Benutzer gibt einen Fliesskommawert (Koeffizienten einer Polynomberechnung) ein in ein Textfeld,
diesen Wert muss ich als Single Wert abspeichern, d.h. von String nach Single,
jedoch kann Delphi, doch nur StrToFloat mit Extended.

Könnte ihr mir da irgendwie weiterhelfen???

Gruß
DelphiManiac

Klaus01 3. Mai 2007 08:50

Re: String --> Single Single-->String
 
-- war nix, Frage missverstanden --
Klaus

Robert Marquardt 3. Mai 2007 09:09

Re: String --> Single Single-->String
 
Na hier greift einfach die Zuweisung. Mit der Ungenauigkeit muss man leben.

DelphiManiac 3. Mai 2007 09:50

Re: String --> Single Single-->String
 
@Robert


Hi, was meinst du mit :

Delphi-Quellcode:
Na hier greift einfach die Zuweisung. Mit der Ungenauigkeit muss man leben.
Danke Dir!

DelphiManiac 3. Mai 2007 10:25

Re: String --> Single Single-->String
 
Könntet ihr mir eventuell erklären,

was der Paramter Precision (Genauigkeit) bei FloatToStrF
genau macht?

Angenommen ich habe einen Singlewert: 0.00000000000000123456789?


Gracias Community

alzaimar 3. Mai 2007 11:05

Re: String --> Single Single-->String
 
Zitat:

Zitat von DelphiManiac
Angenommen ich habe einen Singlewert: 0.00000000000000123456789?

Es gibt keinen solchen Single-Wert. Die haben nämlich nur 7-8 signifikante Stellen.
Zitat:

Zitat von Die Delphi-Hilfe
The Precision parameter specifies the precision of the given value. It should be 7 or less for values of type Single, 15 or less for values of type Double, and 18 or less for values of type Extended.
The Digits and Format parameters together control how the value is formatted into a string. For details, see the description of TFloatFormat.

Wer lesen kann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Seite 2 von 3     12 3      

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