Forum: VB.NET |
Thema:
AW: Rundungsfehler in VB.NET |
Von:
Bernhard Grojer (
25.08.2007 12:16) |
Kaufmännisch runden: Math.Round(1.275,2,MidpointRounding.AwayFromZero)
oder
Mathematisch runden: Math.Round(1.275,2)
Oder ligt das Problem wo anders?
Betreff |
Von |
Datum |
|
|
AW: AW: Rundungsfehler in VB.NET
Hi,<br><br>stimmt - das Problem liegt woanders ;o)<br>Bei der mathematischen Rundung (und auch bei der kaufmännischen) müsste er ja eigentlich auf 1.28 kommen - tut er aber nicht :o(<br><br>Dim Wert as... |
|
|
|
|
|
G.
Guest
|
25.08.2007 20:01 |
|
|
AW: AW: AW: Rundungsfehler in VB.NET
Hallo,<br><br>das ist echt nicht lustig. Irgendwas is da richtig faul an der Funktion. Hier mal ein paar Tests:<br><br>Decimal-Wert gerundet auf 2 Stellen. Das Ergebnis ist für ToEven nicht korrekt, wenn ich... |
|
|
|
|
|
Thomas
Hauser
|
26.08.2007 11:59 |
|
|
AW: AW: AW: AW: Rundungsfehler in VB.NET
Vermutung: double speichert werte als flieskommazahl (float) ... damit wär beim Runden 1.275 intern als 1.27499..... <br>Dadurch dürfte beim "Abschneiden" Probleme entstehen :D<br><br>Seltsam auf jeden Fall... |
|
|
|
|
|
Bernhard
Grojer
|
26.08.2007 13:48 |
|
|
AW: AW: AW: AW: Rundungsfehler in VB.NET
Hallo Thomas,<br><br>und ich dachte schon, ich stehe völlig im Wald ;o)<br><br>Dann wird mir wohl auch nichts anderes übrig bleiben, als meine eigenen Rundungsroutinen zu schreiben - alles andere ist mir dann... |
|
|
|
|
|
|
26.08.2007 14:21 |
|
|
AW: AW: AW: AW: AW: Rundungsfehler in VB.NET
Hallo,<br><br>jetzt habe ich eine akzeptable Lösung. Das wäre dann toString Methode von double oder decimal.<br>Formatstring: "Fd", wobei d die Anzahl der Nachkommastellen ist.<br><br>Hier ein paar Tests, die... |
|
|
|
|
|
Thomas
Hauser
|
26.08.2007 14:53 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!