![]() |
addieren
Hallo, kann mir vielleicht jemand sagen, wie ich zu 1,50 + 0,10 dazu zähle?
danke, gruß pump :angel: |
Re: addieren
Delphi-Quellcode:
var a : real;
..... begin ..... a := 1.5 +0.1; showmessage(FloatToStr(a)); //ergibt dann 1,6 ...... end; Oder war das ein Scherz ? |
Re: addieren
Hi
Äh, wie meinst du das? Gleitkommazahlen (z.B. Typ: Double) kann man doch normal addieren (1.50 + 0.10), oder habe ich dich jetzt falsch verstanden? :gruebel: Edit: Red box, where have you been? ^^ |
Re: addieren
und wie kann ich zb:
q : real; i : string; i := ini2.ReadString('handelspreis','1',''); also ist i bei mir: 1.5 jetzt würd ich gerne zu diesen 1.5, 0.1 dazu zählen. aber: q := i +0.1; geht nicht. weiß jemand ne lösung? danke, pump :angel: |
Re: addieren
Hi Pump3r!
Es geht nicht, weil i bei dir ein String ist! Du müsstest also den String auswerten und in einer Gleitkommazahl speichern.
Delphi-Quellcode:
var
q,p : real; code: integer; i : string; begin i := ini2.ReadString('handelspreis','1',''); Val(i, p, code); if code=0 then begin q := p + 0.1; ShowMessage('Der Handelspreis ist '+floattostr(q)); end; end; Flare //Edit: Falsche Parameter richtig getauscht. |
Re: addieren
Oder auch StrToFloat nutzen, wobei da eventuell eine Exception auftritt wenn im String keine gültige Gleitkommazahl steht.
|
Re: addieren
flare ich bekomm jetzt eine meldung: inkompatible typen.
|
Re: addieren
Zitat:
![]() |
Re: addieren
Wandle den String in der Ini einfach mit Strtofloat in eine Gleitkommazahl um:
Delphi-Quellcode:
ausserdem bekommt man Augenkrebs von deinem Programmierstil :cyclops: ;)
var
r:real; i:string; begin i:=readstringetc... r:=strtofloat(i); r:=r+0.01; label1.caption:=floattostr(r); Verwende NIE den Variablennamen i für einen String !!! i heisst integer, c heisst char und s heisst string, diese Namen sind absolut tabu für andere Typen :!: dieses I als Stringname schränkt die Lesbarkeit des Codes brutal ein. Immer wenn ich ein i sehe weiss ich sofort dass es sich um eine integer handelt. |
Re: addieren
Zitat:
Flare |
Re: addieren
so jetzt hab ichs auch kapiert :)
tausend dank an euch alle!!! gruß pump :angel: |
Re: addieren
achja gibt es eine möglichkeit, zb: 1.4 in einem währungsformat anzuzeigen?
-> 1.4 -> 1.40€ ... also das euro zeichen ist ja net das problem aber die 0. wenn ich an 1.4 eine 0 ran häng, dann ist es 1.40. wenn ich das aber bei 2 mach, dann ist es 20. das ist etwas schlecht :) gruß pump :angel: |
Re: addieren
Schau dir mal
![]() |
Re: addieren
so hab mal ein bisschen herumprobiert.
Edit9.Text := FloatToStrF(ini2.ReadString('handelspreis','1','') ,ffCurrency,8,2); kleines problem: das was es aus der ini ausliest, ist ein string: 1.24 wenn ich aber 1.24 direkt in die zeile schreibt klappt es ohne probleme, er hat nur probleme mit dem lesen wie es aussieht. hmm? aber so wie ich FloatToStrF verstanden hab muss da ein string hin ... |
Re: addieren
Hallo,
beim direkten Reinschreiben muss das Zeichen ein Punkt sein (in englischer Sprache so üblich). Wenn du es von einem String umwandelst, muss es ein Komma sein. Mach einfach ein ![]() P.S.: Aber warum willst du es umwandeln? Im Code in deinem letzten Beitrag arbeitest du nur mit Strings, da würde ein "normales" Format reichen. Aber lies doch besser mit ini.ReadFloat aus. Gruß, ManuMF |
Re: addieren
Delphi-Quellcode:
das will nicht so wie ich:
Edit9.Text := FloatToStrF(StringReplace(ini2.ReadString('handelspreis','1',''),'.',',', [rfReplaceAll, rfIgnoreCase]),ffCurrency,8,2);
Erzeugen [Fehler] main.pas(145): Es gibt keine überladene Version von 'FloatToStrF', die man mit diesen Argumenten aufrufen kann [Fataler Fehler] BBoerse.dpr(5): Verwendete Unit 'main.pas' kann nicht compiliert werden ich glaub ich bin zu dumm :p kann mir wer meinen fehler sagen? danke, pump :angel: |
Re: addieren
Edit9.Text := FloatToStrF(StringReplace(ini2.ReadString('handelspreis','1',' ')'.',',', [rfReplaceAll, rfIgnoreCase]),ffCurrency,8,2);
Du versuchst mit floatTostrF einen String in einen String umzuformen. FloatToStrF erwartet aber so weit ich das weiß ein FloatWert als Parameter. Grüße Klaus |
Re: addieren
@Christian: Delphi hilft dir wirklich wo es geht, es meldet dir doch als Hint folgendes:
Zitat:
|
Re: addieren
okay, also brauch ich meine zahl als float wert nicht als string so wie er in der ini steht.
nun, aber readfloat geht nicht und den string auslesen und dann strtofloat will auch net gehen ... |
Re: addieren
Hallo,
was heißt, ReadFloat geht nicht? Will es der Compiler nicht oder gibts beim Ausführen ein Problem? Das muss gehen:
Delphi-Quellcode:
Gruß,
Edit9.Text := FloatToStrF(ini2.ReadFloat('handelspreis', '1', 0), ffCurrency, 8, 2);
ManuMF |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz