Search code examples
javalocalenumber-formatting

Decimal separator in NumberFormat


Given a locale java.text.NumberFormat:

NumberFormat numberFormat = NumberFormat.getInstance();

How can I get the character used as Decimal separator (if it's a comma or a point) in that numberformat? How can I modify this property without having to use new DecimalFormat(format)?

Thanks


Solution

  • The helper class DecimalFomatSymbols is what you are looking for:

    DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance();
    DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();
    char sep=symbols.getDecimalSeparator();
    

    To set you symbols as needed:

    //create a new instance
    DecimalFormatSymbols custom=new DecimalFormatSymbols();
    custom.setDecimalSeparator(',');
    format.setDecimalFormatSymbols(custom);
    

    EDIT: this answer is only valid for DecimalFormat, and not for NumberFormat as required in the question. Anyway, as it may help the author, I'll let it here.