# Rundungsfehler bei Double



## derhonk (11. Juni 2012)

Hi,

habe bei einer Aufgabe folgendes Problem:


```
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


----------



## sheel (11. Juni 2012)

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ß


----------



## genodeftest (11. Juni 2012)

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.


----------



## Anime-Otaku (13. Juni 2012)

Bei Währungen rechnet man deshalb häufig einfach mit der kleinsten Einheit (also Cent beim Euro).


----------

