日期:2014-05-20  浏览次数:21027 次

如何把float类型含科学计数法的数据转成普通数字
Java code
String str = "1.0502487857251702E8";


如何转成普通的数据表现形势,并且小数点后只保留两位,高手求教,在线等。。。



------解决方案--------------------
先根据E分割字符串,根据E后面的数据来截取前面的,然后转换成float后再乘上10 * E后面的数字大小
------解决方案--------------------
应该是10的N次方
------解决方案--------------------
public void getDoubleValTest(){
String str = "1.0502487857251702E8";
String sarr[] = str.split("E");
double res1 = Double.valueOf(sarr[0]);
int ci = Integer.valueOf(sarr[1]);
double cinum = 10;
for(int i=0;i<ci;i++){
cinum = cinum*10;
}
double res = res1*cinum;
NumberFormat nf = new java.text.DecimalFormat("0.00");
System.out.println("res:" + nf.format(res));
}
------解决方案--------------------
Java code
String str = "1.0502487857251702E8";
        BigDecimal num = new BigDecimal(str);
        DecimalFormat df = new DecimalFormat("0.00");
        String res = df.format(num);
        System.out.println(res);