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 2 von 3     12 3      
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 14:52
Im Debug Inspector steht
value '1.274.847'
  Mit Zitat antworten Zitat
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 14:54
Ja, ok. Deshalb auch der Betreff. Kann ich denn mit Delphi aus einem IntegerString ein Float machen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 14:56
Dann setzte doch das Format kurzzeitig um:
Delphi-Quellcode:
ThousandSeparator = '.';
toFormat:= StrToFloat(value);
Markus Kinzler
  Mit Zitat antworten Zitat
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 15:02
Gesagt, getan. Und wieder der FormatError.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 15:04
Schon die überladene StrToFloat mit Format versucht?
Markus Kinzler
  Mit Zitat antworten Zitat
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 15:08
Hatte
Delphi-Quellcode:
function Tfrm_budgets.getFormatted(value: String; decPlaces: Integer): Real;
var toFormat: Real;
f: TFormatSettings;
begin
  if value = 'then
    toFormat:= 0
  else begin
    f.ThousandSeparator:= '.';
    f.DecimalSeparator:= ',';
    toFormat:= StrToFloat(value, f);
  end;
  result:=StrToFloat(format('%.' + IntToStr(decPlaces) + 'n', [toFormat]));
end;
probiert und es ging nicht.
  Mit Zitat antworten Zitat
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 16:50
Habe ein bischen weiter geforscht und dabei heraus bekommen, das es tatsächlich am TausenderTrennzeichen liegt.
Aber wie kann ich den . nun löschen? So wie ich es mache geht es nicht:

Delphi-Quellcode:
function TestTfrm_budgets.getFormatted(value: String; decPlaces: Integer): Real;
var toFormat: Real;
    i: Integer;
    str: String;
    f: TFormatSettings;
begin
  if value = 'then
    toFormat:= 0
  else begin
    for i := 0 to length(value) do
    begin
      v:= ;
      if (value[i] <> f.ThousandSeparator) then
      begin
       str:= str + value[i];
      end;
    end;
    toFormat:= StrToFloat(str);
  end;
  result:=StrToFloat(format('%.' + IntToStr(decPlaces) + 'n', [toFormat]));
end;
So steht trotzdem der Punkt (TausenderTrenner) drin.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 17:00
StringReplace()
Markus Kinzler
  Mit Zitat antworten Zitat
newgro

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

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 17:08
Delphi-Quellcode:
function TestTfrm_budgets.getFormatted(value: String; decPlaces: Integer): Real;
var toFormat: Real;
    i: Integer;
    str: String;
    f: TFormatSettings;
begin
  if value = 'then
    toFormat:= 0
  else begin
    str:= StringReplace(value, f.ThousandSeparator, '', [rfReplaceAll]);
    toFormat:= StrToFloat(str);
  end;
  result:=StrToFloat(format('%.' + IntToStr(decPlaces) + 'n', [toFormat]));
end;
Und wieder der Fehler. Aber er ersetzt nicht den ThousendSeparator. Muss ich den irgendwie umwandeln?

Danke
Per
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Fehler bei StrToFloat(StrAlsIntegerFormatiert)

  Alt 16. Apr 2007, 17:16
str:= StringReplace(value, '.', '', [rfReplaceAll]);
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:09 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