Tausender Trennzeichen DecimalFormat & NumberFormat

Varthor

Mitglied
Hallo zusammen,

ich sitze gerade an einem Programm welches eingegebene Zahlen formatiert,

beispielsweise

Eingabe: 1000000
Ausgabe: 1 Million

Eingabe: 123268
Ausgabe ca. 123.000

Mein Problem ist das anstatt dem oben gewünschten Punkt als tausender Trennzeichen ein Kommata steht.

Eingabe: 123268
Ausgabe ca. 123,000

Leider konnte ich mit DecimalFormat & NumberFormat keine Änderung des tausender Trennzeichens bewirken. Hat diesbezüglich jemand eine Idee?

Besten Dank
Varthor

Java:
 private String format(long number)  
{

 String result = "";
....

{
// Diverse Fallunterscheidungen (z.B. ob Million, soll gerundet werden etc.)

// Im Falle der Umrechnung erfolgt eine Formatierung der Eingabe 123268 auf 123000
// Es folgt die Ausgabenformatierung

DecimalFormat df = (DecimalFormat) NumberFormat.getInstance(Locale.German);
 df.applyPattern("###,###.##");
result = df.format(number);

}

 return result;
}
 

Varthor

Mitglied
Habe es gerade selber, unsauber gelöst.

Java:
       NumberFormat df = NumberFormat.getInstance(Locale.GERMAN);
        result = df.format(number).replace(",", ".");
Gibt es vlt. trotzdem eine Anregung warum obiges nicht funktioniert?
 

arilou

Bekanntes Mitglied
Java:
DecimalFormat df = (DecimalFormat) (DecimalFormat.getInstance( Locale.GERMAN ));
DecimalFormatSymbols symbols = df.getDecimalFormatSymbols();
symbols.setGroupingSeparator( '.' );
df.setDecimalFormatSymbols( symbols );
// jetzt arbeitet df mit '.' als GroupingSeparator
Hat mich damals auch 'ne Weile gekostet, das rauszufinden :rtfm:
 
Zuletzt bearbeitet:

tim danger

Mitglied
Ich weiß, die Antwort kommt jetzt vielleicht bisschen spät, aber besser ist:

Java:
Double yourDouble = 50000.23;
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMANY);
DecimalFormat df = (DecimalFormat) nf;
df.applyPattern("###,###.00");
String result = df.format(yourDouble);

So würdest du noch die Nachkommastellen richtig angezeigt bekommen. Wenn die nicht interessieren, dann einfach im Pattern das .00 am Ende weglassen. Siehe auch hier für eine sehr ausführliche Darstellung der Formatierungsmöglichkeiten: https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
 

KonradN

Super-Moderator
Mitarbeiter
@tim danger Bei Deinem Code ist Dir aber ein Fehler unterlaufen - yourDouble ist bereits ein double und daher ist da kein parseDouble Aufruf mehr notwendig. Es reicht also direkt ein Aufruf von df.format mit dem Parameter yourDouble. Und dann willst Du mit der Rückgabe vom format Call noch irgendwas machen ...
 

soists

Mitglied
Evtl. interessiert dich auch: https://github.com/allegro/tradukisto

Das haben Leute geschrieben, die sich damit auskennen. Hier mal ein Beispiel:

Java:
import pl.allegro.finance.tradukisto.MoneyConverters;
import pl.allegro.finance.tradukisto.ValueConverters;

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        ValueConverters converter = ValueConverters.GERMAN_INTEGER;
        String words = converter.asWords(123455);
        System.out.println("123455   = " + words);
        MoneyConverters germanBankingMoneyValue = MoneyConverters.GERMAN_BANKING_MONEY_VALUE;
        String words1 = germanBankingMoneyValue.asWords(BigDecimal.valueOf(321.05));
        System.out.println("321.05 e = " + words1);
    }
}

Code:
123455   = einhundertdreiundzwanzigtausendvierhundertfünfundfünfzig
321.05 e = dreihunderteinundzwanzig € 05/100

Wie so etwas grundsätzlich funktionieren kann, wird hier beschrieben: https://www.javatpoint.com/java-program-number-to-word

Finde ich immer besser, als selber etwas versuchen, schlecht umzusetzen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Erste Schritte Tausender Trennzeichen setzen Java Basics - Anfänger-Themen 5
S NumberFormat Tausender Zeichen entfernen? Java Basics - Anfänger-Themen 4
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
F Trennzeichen für Anführungszeichen Java Basics - Anfänger-Themen 1
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
H String: Unbekanntes Trennzeichen Java Basics - Anfänger-Themen 15
K String Tokenizer mehrere Trennzeichen Java Basics - Anfänger-Themen 5
M Datentypen String mit Trennzeichen abfragen Java Basics - Anfänger-Themen 7
S DecimalFormat deutsche Trennzeichen. Java Basics - Anfänger-Themen 4
J String zerlegen mit mehreren trennzeichen Java Basics - Anfänger-Themen 3
C Text mit Trennzeichen parsen (Bsp. Ich/esse/heute/Eis) Java Basics - Anfänger-Themen 9
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
P DecimalFormat Java Basics - Anfänger-Themen 5
A DecimalFormat und wissenschatliche (Potenz-)Schreibweise Java Basics - Anfänger-Themen 6
H DecimalFormat mit BigDecimal? Java Basics - Anfänger-Themen 6
N Methoden Decimalformat variabel einstellen Java Basics - Anfänger-Themen 18
L DecimalFormat InputStringException Java Basics - Anfänger-Themen 5
H DecimalFormat Java Basics - Anfänger-Themen 6
C DecimalFormat-Patern funktioniert ab 11 Stellen nicht mehr Java Basics - Anfänger-Themen 3
D Datentypen Double 2 stellen hinter dem Komma ausgeben OHNE decimalformat Java Basics - Anfänger-Themen 2
L DecimalFormat - wo ansetzen? Java Basics - Anfänger-Themen 4
R Decimalformat mit Aufzählung von 1 bis 100 Java Basics - Anfänger-Themen 2
I kleines problemchen bei DecimalFormat Java Basics - Anfänger-Themen 6
G Problem mit DecimalFormat Java Basics - Anfänger-Themen 3
D komme heute mit dem DecimalFormat nicht klar... Java Basics - Anfänger-Themen 2
J String Formatieren DecimalFormat oder wie? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben