我正在尝试将字符串pprice转换为浮点数。但是,对象的价格属性(浮动pt类型)设置为0.00 ..有人可以告诉我有什么问题吗?
String pprice="60.0"
String tokens[]=pprice.split(".");
if(tokens.length>=2)
{
int a=Integer.parseInt(tokens[0]);
int b=Integer.parseInt(tokens[1]);
float a1=(float)a;
float b1=(float)b;
Float price=a1+(b1/100);
prod.setProductPrice(price);
}
else if(tokens.length==1)
{
int a=Integer.parseInt(tokens[0]);
float a1=(float)a;
prod.setProductPrice(a1);
}
答案 0 :(得分:7)
使用Double.parseDouble(string)或Float.parseFloat(string);
答案 1 :(得分:5)
你的问题在这里:
String tokens[]=pprice.split(".");
split的参数是正则表达式,"。"是一个匹配任何单个字符的正则表达式。要仅匹配点,您需要使用反斜杠转义它,并且由于反斜杠也很特殊,您需要加倍。
String tokens[]=pprice.split("\\.");
更改它,您的代码应该有效。
您可能最好使用其他答案中提到的解析方法之一。
答案 2 :(得分:2)
让我们试试float.parseFloat("60.0");
或Double.parseDouble("60.0");
答案 3 :(得分:2)
为什么不使用以下内容:
float price = Float.valueOf(pprice.trim());
(相当于Float.parseFloat(string))
答案 4 :(得分:1)
float urfloat=Float.parseFloat(String string)