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