Long in einen Double umwandeln und im Label anzeigen

Hallo. Ich müsste einen Long-Wert in ein Double umwandeln und diesen Double Wert in einem Label anzeigen.
Was ich bisher gemacht habe ist:

long l = 30688L;
double d = Long.valueOf(l);

nameArea.setText(Double.toString(d)); //Im Label wird dann 30688.0 angezeigt.

Ich muss den double-Wert aber als 30.688 anzeigen.
Ich habe es auch mit
NumberFormat format = new DecimalFormat("##.#####");
nameArea.setText(format.format(d)); //30688

versucht. So wird im Label 30688 angezeigt....

Hat jemand tipps?
 
Du hast eine Ganzzahl 30688. Wenn Du diese in ein double umwandelst, bleibt das erstmal 30688. Der Punkt bei 30688.0 ist nicht das Tausendertrennzeichen sondern die amerikanische Form des Dezimalkommas. Das Tausendertrennzeichen ist dort ein Komma - also genau andersrum wie bei uns.

Um eine Ganzzahl mit Tausendergruppierung auszugeben, kannst Du z. B. String.format verwenden. Durch die Angabe der Locale werden die richtigen Zeichen verwendet:

Java:
long l = 30688L;
String deutsch = String.format(Locale.GERMAN, "%,d", l);
String amerikanisch = String.format(Locale.US, "%,d", l);
System.out.println(deutsch);
System.out.println(amerikanisch);
 
Java ist auch eine Insel
Code:
public class Test
{

   
   
    public static void main(String[] args)
    {
       
        long l = 30688L;
        double d = (double)l;
        NumberFormat f = DecimalFormat.getCurrencyInstance(Locale.GERMAN);
        System.out.println(f.format(d));
       
    }

}
 
Das ist das Währungssymbol. Mach es mit String.format, dann sollte es passen. Alternativ verwende DecimalFormat.getInstance() statt getCurrencyInstance()
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben