AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit StrToFloat

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

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

Re: Probleme mit StrToFloat

  Alt 17. Feb 2009, 00:21
Ziemlich verwirrend, was Du so in dem Beispielcode stehen hast (durch's Testen wohl mehr Chaos als Hilfe entstanden).

Delphi Code-Tags machen das lesen leichter (im Forum-Editor oben "Delphi-Code")

Delphi-Quellcode:
procedure Tfrm_Behandlungen.BitBtn_SpeichernArtikelClick(Sender: TObject);
var
  SP_Einzelpreis : Real;
  SP_Menge : double;
  SP_Ergebnis : Currency; // damit das Datentypen-Chaos perfekt wird ;-)
begin
  inherited; // ???

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

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

  // Wieso Einzelpreis vom gleichen Datenfeld?
  SP_Einzelpreis := StrToFloat(frm_Behandlungen.DBEdit_Menge.Text);

  SP_Ergebnis := SP_Einzelpreis * SP_Menge;
end;
1. Wieso SP_Einzelpreis vom gleichen Datenfeld... Copy+Paste Fehler oder?
2. Welchen Wert hat Einzelpreis. Ist der 0, dann ist auch das Ergebnis 0
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#12

Re: Probleme mit StrToFloat

  Alt 17. Feb 2009, 01:22
probier mal die Function StrToFloatSafe aus der Unit JclStrings von Jedi

Delphi-Quellcode:
var
  s : String;
  d : Double;

begin
  s := 'Eine Zahl: 123,45';
  d := StrToFloatSafe(s);
  s := '123,45 Euro';
  d := d + StrToFloatSafe(s);

  ShowMessage('Ergebnis :'+ FloatToStr(d));
  // da wird 246,9 angezeigt

ach sorry, hab zu schnell gelesen, war ja nicht sein Problem, lass den Post trotzdem mal stehen ...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
147 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Probleme mit StrToFloat

  Alt 17. Feb 2009, 10:55
Grundsätzlich war mir immer TryStrToFloat, bzw. auch TryStrToInt lieber,
da so nicht konvertierbare Werte leichter abgefangen werden können.
Was mir nicht ganz klar ist:
Liest du die Preise aus einer DB aus? Wenn ja mit welchem Zugriff?
Falls du ADO verwendest könntest du das Feld mit FieldByName('Wert').AsFloat auslesen und direkt in eine Variable schreiben.

Welche Mengen-Einheiten verwendest du?
Zur Fehlersuche könntest du evtl. auf die nächst kleinere Einheit wechseln,
die als Integerwert angezeigt werden kann. So könntest du einen Fehler in der Floatumrechnung ausschließen.
Vielleicht auch falscher Datentyp beim Ergebnis?

Überwachungsmonitor ... nur um das auszuschließen: hast du Brakepoints gesetzt, dass der Gute auch was anzeigen kann?
Leg lieber mal ein Editfeld an, in dem du deinen Ergebniswert ausgibst.

Das war alles was mir grade dazu einfällt, ich weiß jetzt natürlich deinen Kenntnisstand nicht,
deswegen vergiss alles, was du schon versucht hast.

Gruß, Alpha
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay
  Mit Zitat antworten Zitat
Dieter11

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

Re: Probleme mit StrToFloat

  Alt 17. Feb 2009, 22:38
Hallo Zusammen,
Danke für Eure Unterstützung.

Ich hatte Brakepoints gesetzt um die Ergebnisse im Überwachungsmonitor anzuzeigen - der hat leider nichts angezeigt.
Geholfen hatte letztendlich die Anzeige der Ergebnisse über ShowMessage ().

Gruss
Dieter
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:16 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