# double 3.0 soll ohne Nachkommastelle ausgegeben werden



## julchen81 (15. Feb 2008)

Guten Morgen!

Ich möchte double-Variablen ausgeben. Allerdings hätte ich gerne, dass wenn der Wert der Variablen mit ".0" endet (also keine Nachkommastellen hat), dann dieses Ende nicht gezeigt wird.

Beispiel:
double i = 3.1  
double j = 4.0

System.out.println("i = " + i);       //gewünschte Ausgabe: i = 3.1
System.out.println("j = " + j);      //gewünschte Ausgabe: j = 4

Alle meine Ideen sind sehr umständlich, vielleicht hat jemand eine bessere?  :wink: 

Liebe Grüße,
Julia


----------



## ms (15. Feb 2008)

julchen81 hat gesagt.:
			
		

> Alle meine Ideen sind sehr umständlich, vielleicht hat jemand eine bessere?  :wink:


Welche Ideen?

ms


----------



## Verjigorm (15. Feb 2008)

System.out.println("j = " + (int) j);


----------



## julchen81 (15. Feb 2008)

Z.B. den Double-Wert in 2 Teile zu zerlegen (Vorkommastellen und Nachkommastellen), dann den Nachkommateil überprüfen (ob = "0") und falls true, dann meine Double-Variable auf int casten.

Oder eine zweite Variable vom Typ double erstellen, mit der ersten gleichsetzen, die zweite dann auf int casten und von der ersten abziehen. Wenn das Ergebnis gleich 0 ist, dann weiß ich, dass die Endung .0 war und ich kann meine Variable auf int casten.

Praktisch und schnell ist was Anderes  :? 

Julia


----------



## julchen81 (15. Feb 2008)

@verjigorm

Es sollen nur die Werte ohne Kommastelle angezeigt werden, die auf .0 enden! Deine Lösung schneidet mir auf alle Fälle den Nachkommateil ab, und das darf nicht sein   


Viele Grüße,
Julia


----------



## Wolfgang Lenhard (15. Feb 2008)

Man wird wohl um eine Fallunterscheidung nicht herumkommen. Wie wäre es mit:


```
double number = ....;

DecimalFormat df1 = new DecimalFormat("0.0");
DecimalFormat df0 = new DecimalFormat("0");

.
.
.

if(number%1.0d==0.0d)
     System.out.println(df0.format(number));
else
     System.out.println(df1.format(number));
```

Ciao


----------



## ARadauer (15. Feb 2008)

```
DecimalFormat decimalFormat = new DecimalFormat("0.########");
		
		double i = 3.1d; 
		double j = 4.0d; 
		 
		System.out.println(i);
		System.out.println(j);
		 
		System.out.println(decimalFormat.format(i));
		System.out.println(decimalFormat.format(j));
```
wobei hier jetzt das länderspecifische decimal trennzeichen ausgegeben wird also ein , - is das ein problem?


----------



## ARadauer (15. Feb 2008)

jaja genau:


```
DecimalFormat decimalFormat = new DecimalFormat("0.########", DecimalFormatSymbols.getInstance(Locale.ENGLISH));

		double i = 3.1d; 
		double j = 4.0d; 

		System.out.println(i);
		System.out.println(j);

		System.out.println("mit formater");
		System.out.println(decimalFormat.format(i));
		System.out.println(decimalFormat.format(j));
```

jetzt mit .


----------



## Verjigorm (15. Feb 2008)

julchen81 hat gesagt.:
			
		

> @verjigorm
> 
> Es sollen nur die Werte ohne Kommastelle angezeigt werden, die auf .0 enden! Deine Lösung schneidet mir auf alle Fälle den Nachkommateil ab, und das darf nicht sein
> 
> ...



oh, nicht genau durchgelesen 

System.out.println(new Double(j).toString().replaceAll(".0", ""));
so ginge es auch, wenn du NUR auf die richtige AUSGABE scharf bist


----------



## julchen81 (15. Feb 2008)

toll !!!!

Vielen Dank für diese Tipps!      

Ob ich nun 
System.out.println(new Double(j).toString().replaceAll(".0", "")); 
von Verjigorm oder die Möglichkeit mit dem DecimalFormat von ARadauer verwende, entscheide ich nach Rücksprache mit meinem Auftraggeber.

Wünsch euch ein schönes Wochenende!
Julia


----------



## der_Ben (15. Feb 2008)

Vorsicht!


> ```
> System.out.println(new Double(j).toString().replaceAll(".0", ""));
> ```


würde bspw. bei
double foo = 3.09
"39" als Ausgabe generieren...


----------



## Saxony (15. Feb 2008)

Hiho,



			
				julchen81 hat gesagt.:
			
		

> [...] entscheide ich nach Rücksprache mit meinem Auftraggeber.



Was hastn du für Auftraggeber die sich für so ne technisch interne Sache interessieren ? 

Normalerweise sind die Auftraggeber froh keines Source zu sehen und noch froher nicht mit dem Entwickler sprechen zu müssen. 

bye Saxony


----------



## julchen81 (15. Feb 2008)

Uuuuuupppppsssss....  :shock: 

Danke der_Ben!!!!!

Julia


----------

