# Double ohne Decimalstellen ausgeben



## Meier (13. Aug 2009)

Hallo,

ich bin in Java auf der Suche, die es mir erlaubt einen double-Wert ohne Dezimalstellen als String auszugeben. Hierbei soll beim Abschneiden der Nachkommastellen nicht gerundet werden.

Beispiel:
Double - Wert : 1746.5934
Als Ausgabe soll erfolgen 1746

Ich habe mir schon die Klassen NumberFormat, DecimalFormat bzw. String.format() angeschaut, allerdings habe ich nicht das passende darunter gefunden. Außer ich hab deren Anwendung nicht korrekt verstanden.

Als Java-Version wird 1.5 eingesetzt.

Vielen Dank für Eure Hilfe
Viele Grüße
Andreas


----------



## Der Müde Joe (13. Aug 2009)

Math.floor(double) um .123 zu entfernen.
(reicht das oder muss der Wert auch ohne .0 sein)
syso((long)d) (webei der double nicht immer in der long passt)

EDIT:
ach ja..und natürlich:

```
DecimalFormat df= new DecimalFormat("#0");
System.out.println(df.format(d));
```


----------



## Meier (13. Aug 2009)

Hallo Joe,

die Ausgabe soll ohne ".0" erfolgen.



> ```
> DecimalFormat df= new DecimalFormat("#0");
> System.out.println(df.format(d));
> ```


Die Funktion, welche du mir genannt hast, habe ich auch schon versucht.

Allerdings rundet er die Zahlen auf.

Aus 73526.98 wird 73527.

Ich bräuchte allerdings 73526. Er soll nur den Decimalteil entfernen ohne zu runden.

Viele Grüße
Andreas


----------



## Der Müde Joe (13. Aug 2009)

>Allerdings rundet er die Zahlen auf.

drum Math.floor(double) vorher.... um .654987 zu entfernen


----------



## tfa (13. Aug 2009)

Wie wär's mit Casting nach int?

```
double d = 78239.98;
System.out.println((int) d);
```

Du musst nur aufpassen, dass der Wertebereich nicht überschritten wird.


----------



## Painii (13. Aug 2009)

tfa hat gesagt.:


> Wie wär's mit Casting nach int?
> 
> ```
> double d = 78239.98;
> ...



So hätt ichs auch gemacht, und als String dann halt noch

```
String intString = String.valueOf(d);
```

Achja, vom Wertebereich her kannst du ja auch noch long nehmen falls int nicht reicht...


----------



## Meier (13. Aug 2009)

Hallo Joe,

ok jetzt habe ich deine vorhige Antwort verstanden.

Bei Werten kleiner 0 entferne ich zuvor die Nachkommastellen mit ceil().

Vielen Dank für deine Hilfe
Andreas


----------



## Meier (13. Aug 2009)

Hallo,

an einen Cast auf int habe ich auch schon gedacht, aber das ist mir zu heikel wegen möglichen Überlaufen, da die Variablen DB-Number mit größerem Wertebereich wie int aufnehmen können. 

Viele Grüße
Andreas


----------



## Der Müde Joe (13. Aug 2009)

>Bei Werten kleiner 0 entferne ich zuvor die Nachkommastellen mit ceil().

Ach sorry...ist ja ceil nicht floor...sollte zuerst in die API gucken
Hasts ja selber gefunden. ;-)

EDIT:
ahh... jetzt ist der 20iger runter...
<0 ceil
>0 floor

Negative Zahlen hab ich gar nicht überlegt


----------

