用逗号将数字字符串转换为浮点数
问题描述:
我有一个字符串格式的数字,我想将它转换为浮点数并保留两位小数。用逗号将数字字符串转换为浮点数
字符串格式的数字可以类似于“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)
我认为我做了很多简单的事情。
有没有更简单的方法来实现这一点。
在此先感谢。 Rao
编辑 到目前为止我得到了什么。 输入 - “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;
答
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
谢谢您的答复,我知道我能做到这一点,但如果我输入的是1128,并且我也做了parsefloat将其转换为1128.00。但我期望的输出是1,128.00。我可以使用decimalFormatter'DecimalFormat formatter = new DecimalFormat(“#,###,###。##”)',但.00仍然不显示。我想我不是十进制格式化程序的权利。 – BRDroid
如果问题只与最后的零有关,如果将1,128转换为字符串并在其末尾添加00,它可能会有帮助吗? – Simo
没有可能因为可以有一个小数点 – BRDroid