是否有一种使用自定义小数分隔符解析浮点数的标准方法

时间:2015-02-04 11:28:11

标签: java

我想知道java中是否有一种标准方法可以对浮点数进行解析。我不是说Float.parseFloat我希望能够手动提供小数点分隔符,无论是逗号还是点,请不要建议使用Locale,因为这很愚蠢。 java.text.NumberFormat适用于Locale,这不是我想要的。 我看起来更像是C#方法Convert.ToDouble。有什么类似的东西吗? C#中的方法允许手动指定小数分隔符

2 个答案:

答案 0 :(得分:1)

备选方案1:将“,”替换为“。” (正如已经建议的那样)

备选方案2:使用DecimalFormat

    float value;
    DecimalFormat df = new DecimalFormat();
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setDecimalSeparator(',');
    df.setDecimalFormatSymbols(symbols);
    try {
        Number n = df.parse("1,234");
        value = n.floatValue();            
    } catch (ParseException e) {
        e.printStackTrace();
    }

备选方案3:使用区域设置

答案 1 :(得分:0)

区域设置是合理/可支持的建议,因为在某些情况下您需要交换,.

如果您想使用其他分隔符,则只需进行文本替换即可。顺便说一下,如果你能帮助它,请不要使用float,因为它的精度很低。

double d = Double.parseDouble(text.replace(MY_CHAR, '.'));