Entwickler-Ecke
Sonstiges (Delphi) - Ergebnisse kaufm. Runden
boebel - Mo 20.01.03 15:08
Titel: Ergebnisse kaufm. Runden
Hi alle,
Ich kenn mich nicht gut aus mit Delphi, darum weiss ich auch nicht in welche Sparte ich da posten soll. :oops:
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?
boebel - 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 - 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
Delete - Mo 20.01.03 16:02
Kuck dir auch in der Hilfe mal Format an.
Klabautermann - 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 - 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?
Delete - 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 - 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.
Delete - 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 - 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 :D
gruss boebel
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!