Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Rechnen mit Double = Ergebnis falsch!
EgoFelix
myCSharp.de - Member



Dabei seit:
Beiträge: 38

Themenstarter:

Rechnen mit Double = Ergebnis falsch!

beantworten | zitieren | melden

Hallo,

ich habe ein Problem mit der Berechnung mittels Double-Variablen.

Das gleiche passiert bei mir übrigends auch, wenn ich die Formel so in der Watchliste eingebe.


double a = 750.0;
double b = 1232.64;
double c = a - b;

Als Ergebnis bekomme ich nun -482.6400000000001. Ich weiss das ich einen Round draufsetzten kann, aber eigentlich sollte doch eine rundes Ergebnis dabei herauskommen...

Ich verwende .NET 3.5 Framework mit VS 2010 Beta.

Kennt vielleicht jemand dieses Phänomen?

Danke bereits im Vorraus ;)
Mit freundlichen Grüßen
Felix
private Nachricht | Beiträge des Benutzers
juetho
myCSharp.de - Member



Dabei seit:
Beiträge: 3358
Herkunft: Berlin

beantworten | zitieren | melden

Siehe [FAQ] Double und Float: Fehler beim Vergleich und Rundungsfehler

Jürgen
private Nachricht | Beiträge des Benutzers
EgoFelix
myCSharp.de - Member



Dabei seit:
Beiträge: 38

Themenstarter:

beantworten | zitieren | melden

Ok stell ich auf Decimal um ;)

Was mich nur wundert, soweit ich in der FAQ gelesen habe, tritt diesem Problem eher beim Umrechnen in das Dezimalsystem auf. Ich hab eine Lange For-Schleife mit mehreren Berechnungen drinne, und das Problem tritt dort trotzdem an mehreren Stellen auf.

Nunja egal, nehm ich halt Decimal ;)

Besten Dank

//Edit
Hat sich erledigt hab nochmal genau nachgelesen ;)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von EgoFelix am .
Mit freundlichen Grüßen
Felix
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 4055
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Zitat
Ok stell ich auf Decimal um ;)
Bedenke aber auch die Auswirkung der Umstellung. Decimal ist kein Datentyp der direkt vom Prozessor verarbeitet werden kann (sowie beispielsweise Int, Float oder Double)
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

... und damit etwa 20 mal langsamer ...

Bei naturwissenschaftlichen Berechnungen sollte man daher besser double verwenden. Bei Finanzberechnung ist decimal quasi zwingend. Bei Taschenrechnern empfehlenswert. Auch dort wo die Zahl der Nachkommastellen beachtet werden muss wäre decimal angesagt.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von svenson am .
private Nachricht | Beiträge des Benutzers