Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Exponentialdarstellung als String in eine Fließkommazahl kon (https://www.delphipraxis.net/96381-exponentialdarstellung-als-string-eine-fliesskommazahl-kon.html)

DelphiManiac 23. Jul 2007 14:49


Exponentialdarstellung als String in eine Fließkommazahl kon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe folgendes Problem, ich bekomme einen String zurverfügung gestellt,
der folgendermaßen aussieht

'35.5E-03'


Diese Exponentendarstellung will ich als Fließkommawert haben, als double z.B.:

Leider bekomme ich folgende Exception (im Anhang)

Kann StringToFloat nicht mit der Exponentialdarstellung umgehen, oder habe ich einen falschen Fehler gemacht :lol: :lol: ?

Danke euch

sirius 23. Jul 2007 14:52

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Es dürfte an dem Komma liegen.

DelphiManiac 23. Jul 2007 14:54

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Mmmh,

also ich biege das eigentlich schon um über die formatsettings:

Delphi-Quellcode:
  GetLocaleFormatSettings(GetUserDefaultLCID, formatSettings);
  formatSettings.DecimalSeparator := '.';
  FMeasureFloat:=StrToFloat(Text,formatSettings);

silver-moon-2000 23. Jul 2007 14:57

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Zitat:

Zitat von DelphiManiac
Hallo,

ich habe folgendes Problem, ich bekomme einen String zurverfügung gestellt,
der folgendermaßen aussieht

'35.5E-03'


Diese Exponentendarstellung will ich als Fließkommawert haben, als double z.B.:

Leider bekomme ich folgende Exception (im Anhang)

Kann StringToFloat nicht mit der Exponentialdarstellung umgehen, oder habe ich einen falschen Fehler gemacht :lol: :lol: ?

Danke euch

Du musst den Punkt durch ein Komma ersetzen, dann funktionierts
Delphi-Quellcode:
 StrToFloat('35,5E-3')
edt: Und wieder mal zu spät :roll:

calculon 23. Jul 2007 14:57

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Was halt geht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
a: real;
begin
  DecimalSeparator := '.';
  a := strtofloat('35.5E-03');
end;
Deshalb schätze ich auch:

Zitat:

Zitat von sirius
Es dürfte an dem Komma liegen.


DelphiManiac 23. Jul 2007 14:59

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
@calculon:

aber ich setze doch das Trennzeichen schon auf Punkt anstatt Komma...


Delphi-Quellcode:
formatSettings.DecimalSeparator := '.';
komisch, komisch

silver-moon-2000 23. Jul 2007 15:17

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Zitat:

Zitat von DelphiManiac
@calculon:

aber ich setze doch das Trennzeichen schon auf Punkt anstatt Komma...


Delphi-Quellcode:
formatSettings.DecimalSeparator := '.';
komisch, komisch

Hallo, Antwort findet sich u.A. hier:
siehe Antwort 5

Hast Du auch geschrieben?:
Delphi-Quellcode:
StrToFloat('35.5E-3',formatsettings);
Gruß
sm2k

DelphiManiac 23. Jul 2007 15:21

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Ja habe ich geschrieben:


Delphi-Quellcode:
  GetLocaleFormatSettings(GetUserDefaultLCID, formatSettings);
  formatSettings.DecimalSeparator := '.';
  FMeasureFloat:=StrToFloat(Text,formatSettings);

DelphiManiac 23. Jul 2007 15:28

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Sorry,

aber das Problem scheint ein anderes zu sein,

der String hat noch nichtdruckbare ASCII Zeichen, die mir nicht aufgefallen sind,
der komplette String
sieht so aus:

'34.7E-03'#$D#$A


Deswegen klappt die Konvertierung nicht, und in die Exception kann die nichtdruckbaren Zeichen ja nicht darstelle,
deswegen habe ich es nicht gesehen,

mein Fehler...

Gruß
und Dank an Euch..

sirius 23. Jul 2007 15:39

Re: Exponentialdarstellung als String in eine Fließkommazahl
 
Da hing also ein [Enter] hintendrann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz