DecimalFormat() 3 Nachkommastellen erzwingen

DirkHo

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes, und zwar möchte ich einen Float-Wert dazu zwingen, immer 3 Nachkommastellen zu haben - zur Not mit 0en aufgefüllt.

Bisher klappte das auch gut, bis ich bemerkte, dass mein Cronjob unter einem "englisch-sprachigen" Benutzer ausgeführt wird und mein Tomcat mit einem deutschen, weshalb die Dateien, die ich über den Cronjob erstelle die Dezimalstellen per "." und die im Tomcat ausgegebenen Daten (im HTML) per "," trenne.

Code:
                float blubb= Float.parseFloat(strArr[POS_blubb])/1000 ;
                blubb= round(blubb, 3);

                /* Alte Version:
DecimalFormat df = new DecimalFormat ("#####0.000");
                bla = df.format(blubb);*/
                
                DecimalFormat df = new DecimalFormat();
                Locale.setDefault(Locale.GERMAN);
                DecimalFormatSymbols dfs = new DecimalFormatSymbols();
                dfs.setDecimalSeparator(',');
                df.setDecimalFormatSymbols(dfs);
                bla = df.format(blubb);

Wie kann ich denn das Teil hier, wo das Format angibt: "#####0.000" wieder so reinfriemeln, dass mir wieder 3 Nachkommastellen erzwungen werden?!

Vielen Dank und viele Grüße,

Dirk
 
Hallo,

muss man das tatsächlich so schreiben?
Java:
package de.tutorials;

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;

public class Main {

	public static void main(String[] args) {
		System.out.println(
					new DecimalFormat("####.000", DecimalFormatSymbols.getInstance(Locale.ENGLISH)).format(1234.43)
				);
	}

}
... man ist die Java API manchmal hässlich...

Gruß Tom
 
Hi ihr beiden,

vielen Dank für eure Antworten!

@zeja: Da habe ich schon geschaut und auch damit rumprobiert, funktioniert hat jedoch nichts.

@Thomas: Vielen Dank! Das werde ich morgen direkt mal probieren.

Viele Grüße,

Dirk
 
Ich habe gerade gemerkt, dass es mit meiner Variante auch gegangen wäre (auch wenn eure schöner und sicher vorteilhafter ist, da kein default-Locale verwendet), aber Excel hat mir in den erzeugten Daten immer die Auffüll-0en am Ende abgeschnitten... O:-)

Vielen Dank noch mals und Grüße, Dirk
 
Zurück