Announcement

Collapse
No announcement yet.

String nach Float konvertieren, Rundung- Problem

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

  • String nach Float konvertieren, Rundung- Problem

    Hallo zusammen,

    ich versuchte verzweifelt einen string nach float zu konvertieren. Wenn ich jedoch mit Single.Parse() benutze dann entsteht ein Rundungs- Fehler

    Beispiel:
    float t = Single.Parse("0,01");

    Ausgabe in t ist dann 0.00999999978

    Wieso macht er das?

    Wie bekomme die axakte Zahl?

  • #2
    Hallo,
    dieses Verhalten liegt in der Art und Weise begründet, wie Fließkommazahlen intern gespeichert und von der FPU (Floating Point Unit) des Prozessors berechnet werden (die FPU vom Pentium rechnet zum Beispiel mit einer Genauigkeit von 80 Bit). Daher darf der <i>float</i>-Datentyp nur dann verwendet werden, wenn es auf derartige Rundungsfehler <b>nicht</b> ankommt. Notfalls muss die Anwendung auf die <b>Round</b>-Methode der Klasse <b>Math</b> aus dem .NET Framework zurückgreifen, um den Fließkommawert unabhängig vom Prozessor immer gleich zu runden.
    <br>
    Alternativ stehen die Datentypen <i>decimal</i> oder der mit einer 64 Bit-Genauigkeit berechnete Datentyp <i>double</i> zur Verfügung

    Comment

    Working...
    X