Announcement

Collapse
No announcement yet.

Kaufmännisch Runden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kaufmännisch Runden

    Leider habe ich im Forum noch keine Lösung für mein Problem gefunden:

    Anhand der 2., bzw. 3. Nachkommazahl soll ein Wert kaufmännisch gerundet werden.

    D.h.: <br>
    1.01 ergibt 1.00 <br>
    1.02 ergibt 1.00 <br>
    1.024 ergibt 1.00 <br>
    1.025 ergibt 1.05 <br>
    1.03 ergibt 1.05 <br>
    .. <br>
    1.07 ergibt 1.05 <br>
    1.074 ergibt 1.05 <br>
    1.075 ergibt 1.10 <br>
    1.08 ergibt 1.10 <br>
    <br>
    Der Wert stammt aus einem TEdit-Feld.
    Im konkreten Problem wird mittels Stückzahl, Einzelpreis und Rabatt der Gesamtpreis ermittelt. Da in meinem Fall nur in .05 Schritten abgerechnet werden kann, muss der ausgegebene Wert zwingend nach obigem Prinzip ausgegeben werden.
    <br>
    <br>
    <br>
    Wichtig ist auch, das nicht einfach nur die Nachkommaziffern verändert werden, sondern am Schluss muss auch der gesamte Betrag korrekt sein: <br>
    19.98 soll somit 20.00 ergeben.
    <br>
    <br>
    Kann mir jemand einen guten Typ geben?
    <br>
    Danke im voraus!

  • #2
    mit round geht das sehr gut

    aber wie man die stellenanzahl da definiert weiß ich nicht ...

    Such mal in der HIlfe nach roun

    Comment


    • #3
      Hi

      <pre>

      Result := Round(Value * 100) / 100; // rundet auf 2 stellen
      Result := Round(Value * 1000) / 1000; // rundet auf 3 stellen
      Result := Round(Value * 4) / 4; // rundet auf 1/4 also 0, 0.25, 0.5, 0.75

      </pre>

      Hage

      Comment


      • #4
        wie kann ich ihm sagen das er zwar auf 4 stellen runden soll aber zeigen soll er mir nur 2 stellen??

        wie geht das ?

        Brauch nämlich eine 4 stellige rundung, wegen der genauigkeit, aber anzeigen soll mir nur 2 stellen.

        &#10

        Comment


        • #5
          Hi

          Na einfach doppelt arbeiten

          <pre>

          DataField.AsFloat := Round(Value * 1000) / 1000;

          DisplayValue := Round(DataField.AsFloat * 100) / 100;

          </pre>

          Gruß Hage

          Comment


          • #6
            danke Hagen :O

            Comment

            Working...
            X