Announcement

Collapse
No announcement yet.

Rundungsfehler kompensieren

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

  • Rundungsfehler kompensieren

    Hallo,

    ich möchte Zahlenwerte, die ich mit StrToFloat in den float-Datentyp wandle in eine Datenbank ablegen. Jetzt kommt es vor, dass durch Rundungsfehler aus der Zahl 10,93 die Zahl 10,9300003051758 oder aus der Zahl 11,10 die Zahl 11,099999999989 gewahndelt wird. Das macht in der Datenbank einen sehr unschönen und unübersichtlichen Eindruck. Kennt ihr eine Möglichkeit das zu kompensieren?

    Gruß,
    Stefan

  • #2
    Hallo Stefan,

    spontan fallen mir zwei Möglichkeiten ein:

    Falls der Wert zuerst einmal in den String geschrieben wird kann er dabei schon gerundet werden:
    <PRE>
    FloatToStrF(wert, AnsiString::sffNumber, 15, 2);
    </PRE>
    Hierbei wird korrekt auf 2 Nachkommastellen gerundet

    Falls Du nur den String hast:<BR>
    Wie bisher in die Variable schreiben. <BR>
    Dann mit
    <PRE>
    wert = RoundTo(wert, -2);
    </PRE>
    runden. Auch in diesem Beispiel wird auf 2 Nachkommastellen gerundet.<BR>
    Hinweis: Für RoundTo() muß die maht.hpp 'includiert' werdeb.

    cu Joche

    Comment


    • #3
      Letzlich hilft manchmal nur die manuelle Rundung:

      http://home.snafu.de/christian.marquardt/quickies.1/1_index.html#roun
      Christian

      Comment


      • #4
        Vielen Dank für Eure Tips!
        Christian round-Funktion löst das von mir beschriebene Problem perfekt.

        Gruß,
        Stefa

        Comment

        Working...
        X