AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit StrToFloat

Ein Thema von Dieter11 · begonnen am 16. Feb 2009 · letzter Beitrag vom 17. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Dieter11

Registriert seit: 18. Nov 2008
35 Beiträge
 
#1

Probleme mit StrToFloat

  Alt 16. Feb 2009, 20:40
Hallo Zusammen,

ich hänge schon eine ganze Weile an folgendem Problem:


Delphi-Quellcode:
VAR SP_Menge : Extended;
     Menge_String : String;

begin
  inherited;

  DecimalSeparator := ',';

  Menge_String := String(frm_Behandlungen.DBEdit_Menge.Text);
  SP_Menge := strtofloat(Menge_String);

  .......
Menge_String wird korrekt angezeigt.
Bei SP_Menge gibt es keine Veränderung - die Variable hat immer den Wert 0.
Auch wenn ich z.B. die Variable SP_Menge : Real; (oder double, ...) setze.

Vielleicht kann mir hier jemand helfen.

Danke.

Gruss
Dieter

[edit=mkinzler]Delphi-Tag korrigiert Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 20:43
1. was soll der typecast nach string()?
2. wieso nicht einfach strtofloat(frm_Behandlungen.DBEdit_Menge.Text)?
  Mit Zitat antworten Zitat
Dieter11

Registriert seit: 18. Nov 2008
35 Beiträge
 
#3

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 20:48
Das hatte ich auch schon probiert - ohne Erfolg.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 20:50
Zitat von Dieter11:
Das hatte ich auch schon probiert - ohne Erfolg.
Wie sieht denn der Wert als string aus?
  Mit Zitat antworten Zitat
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#5

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 20:52
das was ich vermutet habe
Menge_String :=Stringreplace(Menge_String ,'.',#44,[]); das sollte helfen
  Mit Zitat antworten Zitat
Dieter11

Registriert seit: 18. Nov 2008
35 Beiträge
 
#6

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 21:03
Der String sieht wie folgt aus: '2,89'
Probiert habe ich auch : '2.89'

Stringreplace
Menge_String :=Stringreplace(Menge_String ,'.',#44,[])
fürht auch nicht zum Erfolg.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 21:10
Hi,

Hast du mal debuggt und geschaut, was Menge_String vor dem StrToFloat für einen Wert hat? (Evtl. das falsche, leere Edit im Code benutzt?)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#8

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 21:23
Da dein code an sich keine Fehler enthält, und strtofloat eine Exception auslösen müsste, wenn irgendwelche nicht verarbeitbaren Zeichen im string sind, tippe ich darauf, dass der Fehler woanders im code ist
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 21:32
Ja, das eine Exception ausgelöst wird schreibt er ja nicht. Vielleicht klappt im Prinzip auch alles (was wir vom Code sehen) korrekt.

Interessant wäre noch, wie er den Wert überprüft. Also etwas mehr vom Code...
  Mit Zitat antworten Zitat
Dieter11

Registriert seit: 18. Nov 2008
35 Beiträge
 
#10

Re: Probleme mit StrToFloat

  Alt 16. Feb 2009, 22:30
Ich schaue mir den Wert im Überwachungsmonitor an.

Hier der Code der Prozedure:

Delphi-Quellcode:
procedure Tfrm_Behandlungen.BitBtn_SpeichernArtikelClick(Sender: TObject);

VAR SP_Einzelpreis : Real;
     SP_Menge : double;
     Menge_String : String;

begin
  inherited;

  DecimalSeparator := ',';

  SP_Menge := 0.01;
  Menge_String := '0,01';

// SP_Menge := String(frm_Behandlungen.DBEdit_Menge.Text);
// SP_Menge_Float := StrToFloat(SP_Menge);


  Menge_String := String(frm_Behandlungen.DBEdit_Menge.Text);
// Menge_String :=Stringreplace(Menge_String ,'.',#44,[]);

  SP_Menge := strtofloat(Menge_String);

  SP_Einzelpreis := StrToFloat(frm_Behandlungen.DBEdit_Menge.Text);

// Hier wird letztendlich Menge mit Preis multipliziert und das Ergebnis gespeichert.




end;
[edit=mkinzler]Delphi-Tag eingefügt. Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:18 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