AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Fehler bei StrToFloat(StrAlsIntegerFormatiert)
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei StrToFloat(StrAlsIntegerFormatiert)

Ein Thema von newgro · begonnen am 16. Apr 2007 · letzter Beitrag vom 17. Apr 2007
Antwort Antwort
Seite 1 von 3  1 23      
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#1

Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:10
Hallo,

ich habe in der DB einen Wert als Float definert. Man kann in einem anderen Feld die NKS angeben.
Ich dachte mir nun, das es einfach möglich ist aus einem String (12345 -> aus einem Textfeld) mit NKS (0 -> aus der DB)
und der Funktion StrToFloat einen Float zu erhalten. Leider bekomme ich eine Exception - "kein gültiger Gleitkommawert"

Gibt es eine andere Möglichkeit als wenn NKS=0 dann StrToInt sonst StrToFloat? Ich denke da an sowas wie StrToFloat mit Formatangaben.

Danke
Per
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:23
Was ist NKS? NachKommaStellen?

StrToFloat hat normalerweise kein Probleme einen String der eine GanzZahl beinhaltet
in einen Float umzuwandeln.
Hast Du vielleicht ein Problem mit deinem DecimalSeperator?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:28
Hallo Klaus,

0 scheint zu gehen, aber 1000 und 1.000 gehen nicht. Allerdings geht 1000,0 auch nicht.

Danke für die Hilfe
Per
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:33
Aber wenn Du Deinen Wert in der DB als Float definiert hast,
warum liest Du in dann nicht als Float aus?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:33
Sollte Code erforderlich sein:
Delphi-Quellcode:
function getFormatted(value: String; decPlaces: Integer): Real;
var toFormat: Real;
begin
  if value = 'then toFormat:= 0 else toFormat:= StrToFloat(value);
  result:=StrToFloat(format('%.' + IntToStr(decPlaces) + 'n', [toFormat]));
end;
Cheers
Per
  Mit Zitat antworten Zitat
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:36
Du meinst in etwa so?

FieldByName('count').AsFloat Das mache ich. Dann wird dieser Wert in ein Tedit Feld gepackt und dann wieder ausgelesen. Und dann knallt es.

Cheers
Per
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:42
Habe es einmal ein wenig umgemodelt.
Aber nicht getestet, für power musst Du die Unit math einbinden.

Delphi-Quellcode:
function getFormatted(value: String; decPlaces: Integer): Real;
var toFormat: Real;
begin
  
  decPlaces:=decPlaces * -1;

  if value = 'then
    toFormat:= 0
  else
    toFormat:= StrToFloat(value);

  result:=toFormat* power(10,decPlaces); //

end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:45
Hmm. Aber

toFormat:= StrToFloat(value); bringt mir doch den Fehler. Habe ich getraced.
  Mit Zitat antworten Zitat
newgro

Registriert seit: 26. Mär 2007
53 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:46
Als value geht z.B.
1000
1.000
1.234.564
rein und alles bringt den Fehler.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 13:48
Zitat von newgro:
Hmm. Aber

toFormat:= StrToFloat(value); bringt mir doch den Fehler. Habe ich getraced.
Bist Du schon mal mit F7/F8 durch den Code gegangen und hast dir mit Ctrl-F5 (Watchlist)
den Wert der Variable value angeschaut?

Und wenn Du ein deutsche Windows System verwendest, dann haben die Werte keine Tausendertrennzeichen
und der DecimalSeparator ist das Komma (,).
Also ist 1.234.567 kein Floatwert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr.
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