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)); }
res:1050248785.73,这个答案是不是多了一位啊?105024878.57 ? or 1050248785.73?
String str = "1.0502487857251702E8"; BigDecimal num = new BigDecimal(str); DecimalFormat df = new DecimalFormat("0.00"); String res = df.format(num); System.out.println(res);
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));
}
BigDecimal num = new BigDecimal(str);
DecimalFormat df = new DecimalFormat("0.00");
String res = df.format(num);
System.out.println(res);