java 怎么将一个带小数点的数字字符串转换成数字

我做了个添加商品的界面 可是添加的时候在价格的文本框中输入带小数点的数字时,就有异常。 在获取文本框内容的时候加了Integer.p.....(不记怎么写了);异常说什么 String 加文本框中的数字;

Integer.parseInt(String s)中的参数s必须要是整数字符串,不能是浮点,或含有非数字的字符,如果要验证输入是否正确可以这样写:
Integer price = null;
try {
price = Integer.parseInt(s);
} catch (Exception e) {
e.printStackTrace();
}
if (price == null) {
System.out.println("数字格式错误");
}
如果你的价格允许输入小数的话可以使用float或double,如:
float price = Float.parseFloat(s);
double price = Double.parseDouble(s);
但最好都用try/catch包起来,因为用户可能会输入不合法的字符串
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-25
java中带小数点的统统用double和float定义,比如有如下例子:
String ssss = "343.40";
double d = Double.valueOf(ssss);

这里调用Double.valueOf(ssss);就把字符串转换成数值型了。
打印出来是:343.40
第2个回答  2019-11-30
你输入的是double型的数据,转换为Int型时出错了。
因为你是商品类需求,建议不要用double。
float/double存储数字只是模糊存储,会有差别。
比如0.1
用double
可能存为0.0999999999999。
建议用BigDecimal
BigDecimal
money=BigDecimal(String
val);这个方法
另外最好用下面的正则匹配一下输入的字符是否为数字
"[0-9]||\\."
第3个回答  2011-12-07
可以这样
int price = (int)Double.parseDouble(yourText.trim());

你的异常是因为你想把2.25这样的直接转化为int类型
第4个回答  2011-12-08
static double parseDouble(String s)
相似回答