代码之家  ›  专栏  ›  技术社区  ›  picKit

分隔整数部分和小数部分的字符[复制]

  •  0
  • picKit  · 技术社区  · 6 年前

    给定区域设置java.text.NumberFormat:

    NumberFormat numberFormat = NumberFormat.getInstance();
    

    谢谢

    0 回复  |  直到 14 年前
        1
  •  81
  •   Minas Mina    4 年前

    helper类 DecimalFomatSymbols 你要找的是:

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

    要根据需要设置符号:

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

    编辑: DecimalFormat ,不是为了 NumberFormat 根据问题的要求。不管怎样,因为这可能对作者有帮助,我就让它在这里。

        2
  •  6
  •   Maria Ioannidou    14 年前

    我同意 biziclop公司 搞乱十进制和分组分隔符并手动执行这项工作,会导致很多问题。参数在区域设置中的使用 NumberFormat

    下面的junit测试方法(通过)显示了基于英语和德语区域设置的这种行为。

    public void testFormatter() {
        DecimalFormat formatter = (DecimalFormat) DecimalFormat.getInstance(Locale.UK);
        assertEquals('.', formatter.getDecimalFormatSymbols().getDecimalSeparator()); //true
    
        formatter = (DecimalFormat) DecimalFormat.getInstance(Locale.GERMAN);
        assertEquals(',', formatter.getDecimalFormatSymbols().getDecimalSeparator()); //true
    
        //and in case you want another decimal seperator for a specific locale
        DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
        decimalFormatSymbols.setDecimalSeparator('.');
    
        formatter.setDecimalFormatSymbols(decimalFormatSymbols);
        assertEquals('.', formatter.getDecimalFormatSymbols().getDecimalSeparator()); //true
    }
    
        3
  •  1
  •   Joachim Sauer    14 年前

    如果 你的 NumberFormat 实例是 DecimalFormat ,然后您可以使用 getDecimalFormatSymbols() 为了得到那个信息。

    一般来说,你不能得到这些信息。