Hallo,
bei der Formatierung eines BigDecimal gibt es ein Problem. Die Zahl kommt ursprünglich aus einer Datenbank, hat daher das Format wie unten (z.B. "3.14"). Ich habe sie per "getString"-Methode geholt, und sie genauso geparst wie den String unten. Sie soll in ein BigDecimal gemappt und entsprechend der Locale formatiert ausgegeben werden. Bei Locale.US z.B. funktioniert das auch, aber bei anderen nicht. Bei Locale.GERMANY habe ich die Ausgabe "314", bei Locale.FRANCE habe ich "3", etc.
Was mache ich falsch?
System: Ubuntu Linux 9.04, Sun Java SE 1.6.0_13-b03
Achja: mit dem oben auskommentierten Konstrukt (DecimalFormatSymbols) geht es genausowenig.
Für eure Hilfe schonmal vielen Dank!
Gruss,
Nimbus
bei der Formatierung eines BigDecimal gibt es ein Problem. Die Zahl kommt ursprünglich aus einer Datenbank, hat daher das Format wie unten (z.B. "3.14"). Ich habe sie per "getString"-Methode geholt, und sie genauso geparst wie den String unten. Sie soll in ein BigDecimal gemappt und entsprechend der Locale formatiert ausgegeben werden. Bei Locale.US z.B. funktioniert das auch, aber bei anderen nicht. Bei Locale.GERMANY habe ich die Ausgabe "314", bei Locale.FRANCE habe ich "3", etc.
Was mache ich falsch?
System: Ubuntu Linux 9.04, Sun Java SE 1.6.0_13-b03
Java:
// BDTest.java
import java.util.Locale;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.ParsePosition;
import java.math.BigDecimal;
public class BDTest {
public static void main (String[] args) {
DecimalFormat decfrm = (DecimalFormat)NumberFormat.getInstance(Locale.GERMANY);
decfrm.setParseBigDecimal(true);
//DecimalFormatSymbols dfs = new DecimalFormatSymbols (Locale.GERMANY);
//decfrm.setDecimalFormatSymbols(dfs);
ParsePosition pos = new ParsePosition(0);
BigDecimal bd = (BigDecimal)decfrm.parse("3.14", pos);
System.out.println ("BD: "+bd);
}
}
Achja: mit dem oben auskommentierten Konstrukt (DecimalFormatSymbols) geht es genausowenig.
Für eure Hilfe schonmal vielen Dank!
Gruss,
Nimbus