java 怎么将一个带小数点的数字字符串转换成数字
我做了个添加商品的界面可是添加的时候在价格的文本框中输入带小数点的数字时,就有异常。在获取文本框内容的时候加了Integer.p.....(不记怎么写了);异常说什么St...
我做了个添加商品的界面 可是添加的时候在价格的文本框中输入带小数点的数字时,就有异常。 在获取文本框内容的时候加了Integer.p.....(不记怎么写了);异常说什么 String 加文本框中的数字;
展开
5个回答
展开全部
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包起来,因为用户可能会输入不合法的字符串
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包起来,因为用户可能会输入不合法的字符串
展开全部
java中带小数点的统统用double和float定义,比如有如下例子:
String ssss = "343.40";
double d = Double.valueOf(ssss);
这里调用Double.valueOf(ssss);就把字符串转换成数值型了。
打印出来是:343.40
String ssss = "343.40";
double d = Double.valueOf(ssss);
这里调用Double.valueOf(ssss);就把字符串转换成数值型了。
打印出来是:343.40
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你输入的是double型的数据,转换为Int型时出错了。
因为你是商品类需求,建议不要用double。
float/double存储数字只是模糊存储,会有差别。
比如0.1
用double
可能存为0.0999999999999。
建议用BigDecimal
BigDecimal
money=BigDecimal(String
val);这个方法
另外最好用下面的正则匹配一下输入的字符是否为数字
"[0-9]||\\."
因为你是商品类需求,建议不要用double。
float/double存储数字只是模糊存储,会有差别。
比如0.1
用double
可能存为0.0999999999999。
建议用BigDecimal
BigDecimal
money=BigDecimal(String
val);这个方法
另外最好用下面的正则匹配一下输入的字符是否为数字
"[0-9]||\\."
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以这样
int price = (int)Double.parseDouble(yourText.trim());
你的异常是因为你想把2.25这样的直接转化为int类型
int price = (int)Double.parseDouble(yourText.trim());
你的异常是因为你想把2.25这样的直接转化为int类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static double parseDouble(String s)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询