我总是喜欢在我的函数中输入数字,范围从0.1到999.9(小数部分总是用'.'分隔,如果没有小数,那么没有'.',例如9或7.
如何将此String转换为浮点值而不管本地化(某些国家使用','来分隔数字的小数部分.我总是用'.'得到它)?这取决于本地计算机设置吗?
sud*_*ode 26
该Float.parseFloat()方法不依赖于语言环境.它期望一个点作为小数分隔符.如果输入中的小数点分隔符始终为点,则可以安全地使用它.
NumberFormat如果需要适应不同的语言环境,该类提供了语言环境感知的解析和格式.
Mau*_*rry 23
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
DecimalFormat format = new DecimalFormat("0.#");
format.setDecimalFormatSymbols(symbols);
float f = format.parse(str).floatValue();
Run Code Online (Sandbox Code Playgroud)
fla*_*hon 17
valueStr = valueStr.replace(',', '.');
return new Float(valueStr);
Run Code Online (Sandbox Code Playgroud)
完成
小智 6
那这个呢:
Float floatFromStringOrZero(String s){
Float val = Float.valueOf(0);
try{
val = Float.valueOf(s);
} catch(NumberFormatException ex){
DecimalFormat df = new DecimalFormat();
Number n = null;
try{
n = df.parse(s);
} catch(ParseException ex2){
}
if(n != null)
val = n.floatValue();
}
return val;
}
Run Code Online (Sandbox Code Playgroud)
见java.text.NumberFormat和DecimalFormat:
NumberFormat nf = new DecimalFormat ("990.0");
double d = nf.parse (text);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70840 次 |
| 最近记录: |