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

从页面传过来的字符串为4444.11
怎么转换成有保留俩位小数的数值类型.可以计算..

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直接进行转换。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-19
可以使用Double.parseDouble(str)转换。代码示例
1,字符串转为double:
String str = "8.08";
double testDou = Double.parseDouble(str);
2,字符串转为int:
String str = "8.08";
int in = Integer.parseInt(str);
但这样转为int后精度丢失。
第2个回答  推荐于2017-10-09
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);本回答被提问者采纳
第3个回答  2009-07-07
String str1 = "44.12";
System.out.println(Float.parseFloat(str1));

转换为 浮点型的就可以了
第4个回答  2009-07-07
java.math.BigDecimal
看一下这个东西。
相似回答