DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: VB.NET | Thema: Rundungsfehler in VB.NET | Von: G. Guest ( 24.08.2007 21:35)

Hi @all,

ich habe folgendes Problem:
Der Double-Wert 1.275 soll auf 2 NKS gerundet werden. Egal welche Form der Rundung ich benutze - in jedem Fall plädiert .NET für 1.27 (normale Rundung mit 2 NKS, MidpointRounding.AwayFromZero, MidpointRounding.toEven). Die einzige Möglichkeit, auf das korrekte Ergebnis (1.28) zu kommen, ist die Konvertierung des Double-Werts mit cdec.

Habe ich irgendetwas übersehen, oder geht .NET tatsächlich so schlampig mit der mathematischen Rundung um?

Grüße aus Berlin
Schoe




Betreff Von Datum
AW: Rundungsfehler in VB.NET
Kaufmännisch runden: Math.Round(1.275,2,MidpointRounding.AwayFromZero)<br>oder <br>Mathematisch runden: Math.Round(1.275,2)<br><br>Oder ligt das Problem wo anders?
Bernhard Grojer 25.08.2007 12:16
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...
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!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Building und Connecting Know-how

© Copyright 2003 ppedv AG