# Double: Nachkommastellen begrenzen



## magic_halli (3. Apr 2007)

Hi,

ich lese mir verschiedene double-Werte aus. Die Anzahl der Nachkommastellen variiert von Wert zu Wert (bis zu 16 Stellen). Diese Werte schreibe ich mir in eine xls-Datei. Die Darstellung dieses ganzen Nachkomma-Rattenschwanzes stört ungemein.
Ich meine mich dunkel zu erinnern, dass man die Ausgabe der Nachkommastellen irgendwie festlegen kann?!

Ich möchte nur auf 2 Stellen gerundet nach dem Komma haben. Wie stelle ich das an???


Danke und Gruß.


----------



## SlaterB (3. Apr 2007)

wie schreibst du denn diese xsl-Datei?
Bit für Bit oder mit irgendeinem Framework?


----------



## magic_halli (3. Apr 2007)

Ich mache die ganz einfach per FileWriter - ohne großes TamTam und gebe einfach eine Reihe von Variablen mit (getrennt mit TAB, sodaß jede Variable in eine neue Spalte geschrieben wird)   


```
path = curSession.GetCurrentDirectory();
FileWriter fw = new FileWriter(path + "dxf_filenames.xls", true);
fw.write(filename_cut+ "\t" +filename+"\t"+sachnr+ "\t"+menge+ "\t" +blechd+ "\t"+werkst +"\t"+masse+"\t"+masse_rohling+"\t"+konturlaenge+ "\n");
fw.close();
```
Ist das falsch? Es geht aber!


----------



## SlaterB (3. Apr 2007)

ist das dann nicht eine csv-Datei?

na wie auch immer,
wie sieht denn die Datei als txt aus?
wenn da
TAB 45.99999993 TAB
drinsteht,
dann ist es ja leicht,
dann musst du einfach statt direkt double was anderes reinschreiben,

siehe NumberFormat/ DecimalFormat
(Beispiele stehen normalerweise auch in Lehrbüchern, Index!, Forumsuche sowieso)


----------



## Marcel_Handball (3. Apr 2007)

Zum Runden auf zwei Nachkommastellen:


```
double zahl =5.123456789;
double zahl_gerundet=Math.rint(zahl*100)/100;
```


----------



## Lim_Dul (3. Apr 2007)

Marcel_Handball hat gesagt.:
			
		

> Zum Runden auf zwei Nachkommastellen:
> 
> 
> ```
> ...


Nicht wirklich. Double ist ungenau, da kann auch leicht eine Zahl mit 15 Nachkommastellen rauskommen.

Ich würde einen Formatter benutzen.


----------



## wittich (3. Apr 2007)

auf 2 nachkommastellen runden mit 

Math.round(zahl*100.)/100.;


----------



## KSG9|sebastian (3. Apr 2007)

```
new DecimalFormat("0.00").format(1.742545452562);
```


----------



## magic_halli (4. Apr 2007)

So, habe es mit dem Ansatz gelöst:

```
new DecimalFormat("0.00").format(1.742545452562);
```

Danke.


----------

