Rundungsfehler bei Double

derhonk

Grünschnabel
Hi,

habe bei einer Aufgabe folgendes Problem:

Code:
    double a = 72*0.1;
    double b = 73*0.1;
    double c = 74*0.1;
       
    System.out.println(a);
    System.out.println(b);
    System.out.println(c);

//    Ergebnis:    
//    7.2
//    7.300000000000001
//    7.4

Liegt das an Java das nur bei 7.3*0.1 Mumpitz raus kommt?

Danke und Gruß

derhonk
 
Hi und Willkommen bei tutorials.de,

das liegt am Computer generell und ist in anderen Programmiersprachen auch nicht anders.
Liegt an der internen Speicherung von double.

Gruß
 
Oder mit anderen Worten: wenn du exakte Zahlen haben willst, nimmst du keine Fließkommazahlen. Oder du hilfst dir mit so was wie BigDecimal aus, das hilft zumindest in manchen Fällen – braucht aber deutlich mehr Speicher und Rechenleistung.
An sonsten: Einfach die Zahl auf etwas weniger gültige Ziffern runden, dann hast du das Problem auch erledigt.
 
Zurück