Division ein double mit integer
Stehe ich vor einem Problem beim teilen einer double
mit einem int
. Code-snippet :
double db = 10;
int fac = 100;
double res = db / fac;
Den Wert von res wird 0.10000000000000001
statt 0.10
.
Weiß jemand, was ist der Grund dafür? Ich bin mit cc um den code zu kompilieren.
- Duplizieren von VIELEN Fragen. Siehe "floating-Genauigkeit-tag".
- mögliche Duplikate von Warum 99.99 / 100 = 0.9998999999999999
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte Lesen Sie die klassischen Papier Was Jeder Computer Scientist Should Know About Floating-Point Arithmetic.
Die CPU nutzt binären Darstellung von zahlen.
Ihr Ergebnis kann nicht exakt als Binärzahl dargestellt werden.
Von 0,1 in Binär ist 0.00011001100110011...
CPU schneidet es an einem bestimmten Punkt, und bekommt einige Rundungsfehler.
double ist ein floating-point-Betreiber, Sie liefern keine exakten Werte. Look-up Präzisions-und Floating-Point-Betreiber, die auf google.