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

java怎么将带小数的字符串 转换可以计算的数值类型~

String str="4444.1122";
double num;
java.text.DecimalFormat myformat=new java.text.DecimalFormat("#0.00");
num=Double.parseDouble(str);//装换为double类型
num=Double.parseDouble(myformat.format(num));//保留2为小数
System.out.println(num);

扩展资料:Java中double类型数字转换
/*
* 如果是小数,保留两位,非小数,保留整数
* @param number
*/
public static String getDoubleString(double number) {
String numberStr;
if (((int) number * 1000) == (int) (number * 1000)) {
//如果是一个整数
numberStr = String.valueOf((int) number);
} else {
DecimalFormat df = new DecimalFormat("######0.00");
numberStr = df.format(number);
}
return numberStr;
}
思路:
1.如果是整数,比如从服务器获取下来是整数4,由于java特性,会将4转换成4.0.我这边的处理方式是:将这个数字强制取整,然后乘以1000(小数点后移3位)如果等于这个数字乘以1000再取整,那么这个数就是整数,只是被java强制转换成了小数。
2.如果原本就是小数,则利用DecimalFormat直接进行转换。

如果是java的话,是可以直接使用Intger.parseInt(字符串),这个方法是会报异常的,有可能字符串不是数字的格式,需要捕获

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包起来,因为用户可能会输入不合法的字符串

java中带小数点的统统用double和float定义,比如有如下例子:
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]||\\."

可以这样
int price = (int)Double.parseDouble(yourText.trim());

你的异常是因为你想把2.25这样的直接转化为int类型

static double parseDouble(String s)

相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网