我有一个字符串格式的数字,我想将它转换为带有两位小数的浮点数。
字符串格式的数字可以类似于“1”或“1,128”(一一二百八十八)。
最初我试过
String stringNumber = "1"; //works fine EXPECTED OUTPUT -- 1.00
String stringNumber = "1,128"// fails because it has a comma. EXPECTED OUTPUT -- 1,128.00
Float f = Float.parseFloat(stringNumber);
String s = String.format("%.2f", f);
在执行Float.parseFloat之前我可以从字符串中删除逗号,并在最后使用格式,如下所示,以获取逗号
format("% ,d", number)
我想我做了很多简单的事情。
是否有更简单的方法来实现这一目标。
提前致谢。 饶
修改 到目前为止我得到了什么。 输入 - “1,128” 使用以下代码转换为“1,128.0” 我唯一缺少的是额外的小数点。 使用decimalFormat如何添加额外的小数点任何想法的人?
String qa = "1,128";
String nocomma = qa.replace(",", "");
Float f = Float.parseFloat(nocomma);
String s = String.format("%.2f", f);
DecimalFormat formatter = new DecimalFormat("#,###,###.0#");
String yourFormattedString = formatter.format(f);
return yourFormattedString;
答案 0 :(得分:0)
1.使用替换,使用""
替换","
然后parseFloat
String stringNumber = "1,128";
String result = null;
result = stringNumber.replace(",","");
Float f = Float.parseFloat(result);
2.使用StringTokenizer
java.util.StringTokenizer stringNumber = new StringTokenizer("1,128", ",");
StringBuffer sb = new StringBuffer();
while (stringNumber.hasMoreTokens()) {
sb.append(stringNumber.nextToken());
}
Float f = Float.parseFloat(sb.toString());
修改强>
// edited here ,change to this
DecimalFormat formatter = new DecimalFormat("#,###,##0.00");
String yourFormattedString = formatter.format(f);
Log.e("DecimalFormat", yourFormattedString);
<强>输出强>
1,128.00