| Autor |
Beitrag |
boebel
      
Beiträge: 16
Delphi 7, Microsoft Visual C# 2010
|
Verfasst: Mo 20.01.03 15:08
Hi alle,
Ich kenn mich nicht gut aus mit Delphi, darum weiss ich auch nicht in welche Sparte ich da posten soll.
Ich habe aber mit Mühe und Not ein kleines Programm "auf die Beine gestellt", dass eine Währung mit Wechselkurs umrechnet, die MWSt. von 7.6% (Schweiz  ) und 10% Marge dazurechnet. Das ganze sieht ca. so aus:
Quelltext 1:
| Label1.caption:=floattostr((((strtofloat(Einkaufspreis.text)* strtofloat(Wechselkurs.text))*1.10)*107.6)/100); |
Soweit, so gut! Ich versuchte das Ergebnis auf zwei Stellen genau zu Runden, leider klappt das nicht so wie ich will.
Hat jemand eine Lösung für mich?
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 20.01.03 15:12
Hallo,
guck mal in FAQ  .
Gruß
Klabautermann
|
|
boebel 
      
Beiträge: 16
Delphi 7, Microsoft Visual C# 2010
|
Verfasst: Mo 20.01.03 15:32
danke, hab ich bereits gesehen. ich habe diese function eingefügt, sowie die unit "math" in die uses-klausel geschrieben.
Leider weiss ich nicht genau, wie ich diese function "Runden" in den Code einfügen soll
Quelltext 1:
| Label1.caption:=floattostr((((strtofloat(Einkaufspreis.text)* strtofloat(Wechselkurs.text))*1.10)*107.6)/100); |
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 20.01.03 15:51
Hallo,
| boebel hat folgendes geschrieben: | Leider weiss ich nicht genau, wie ich diese function "Runden" in den Code einfügen soll
Quelltext 1:
| Label1.caption:=floattostr((((strtofloat(Einkaufspreis.text)* strtofloat(Wechselkurs.text))*1.10)*107.6)/100); | |
Da du das ergebnis Runden willst, müsste das so aussehen:
Quelltext 1:
| Label1.caption:=floattostr(Runden((((strtofloat(Einkaufspreis.text)* strtofloat(Wechselkurs.text))*1.10)*107.6)/100, 2)); |
Gruß
Klabautermann
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 20.01.03 16:02
Kuck dir auch in der Hilfe mal Format an.
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 20.01.03 16:21
Hallo,
| Luckie hat folgendes geschrieben: | | Kuck dir auch in der Hilfe mal Format an. |
Wobei format meines Wissens nach Abschneidet und nicht Rundet.
Gruß
Klabautermann
|
|
boebel 
      
Beiträge: 16
Delphi 7, Microsoft Visual C# 2010
|
Verfasst: Mo 20.01.03 16:45
sorry, mit dem format funktioniert das ganze nicht richtig.
Danke, Klabautermann!
Mit der der function "Runden" und deinem Code funktionierts!
Ist es möglich, die zweite Stelle nach dem Komma auf 0 oder 5 zu runden?
Beispiel:
12.49 oder weniger wird abegrundet auf 12.0
12.5 wird nicht verändert: 12.5
12.51 oder mehr wird aufgerundet: 13
oder wäre das zu aufwendig?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 20.01.03 17:00
| Klabautermann hat folgendes geschrieben: | Hallo,
| Luckie hat folgendes geschrieben: | | Kuck dir auch in der Hilfe mal Format an. |
Wobei format meines Wissens nach Abschneidet und nicht Rundet.
Gruß
Klabautermann |
Quelltext 1: 2: 3: 4: 5: 6: 7:
| var s : String; begin s := Format('%0.2f', [125.562]); ShowMessage(s); s := Format('%0.2f', [125.567]); ShowMessage(s); |
Ergebnis:
1. 125,56
2. 125,57
q.e.d.
|
|
derDoc
      
Beiträge: 623
Win Vista Prof
D2007 Prof
|
Verfasst: Mo 20.01.03 17:38
Nur rein aus Interesse, wäre RoundTo nicht die bessere Wahl?
Dann wäre der Code der folgende:
Quelltext 1:
| Label1.Caption := FloatToStr(RoundTo((((StrToFloat(Einkaufspreis.Text)* StrToFloat(Wechselkurs.Text))*1.10)*107.6)/100, -2)); |
Das hat doch eigentlich den selben Effekt und benötigt auch nur die Unit Math.
_________________ MfG derDoc
There are only 10 types of people: those who understand binary and those who don't.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 20.01.03 17:40
Ich würde Format vorziehen: Keine extra Unit einbinden, und mann kann es besser formatieren, mit tausender Trennzeichen usw.
|
|
boebel 
      
Beiträge: 16
Delphi 7, Microsoft Visual C# 2010
|
Verfasst: Di 21.01.03 13:28
Danke an alle die hier teilgenommen, und mir somit sehr geholfen haben.
+ ein besonderes Dankeschön an Klabautermann, der zeitlich gesehen, sehr schnell Lösungen angeboten hatte
gruss boebel
|
|