日期:2014-05-18  浏览次数:20690 次

String 转 float 问题
String   a   =   "1000000000 ";

float   b   =   Float.parseFloat(a);

System.out.println(b);


会输出     1.0E8

我现在想输出正常的数字,怎么解决?

------解决方案--------------------
DecimalFormat df = new DecimalFormat( "0.## ");
df.format(v1);
------解决方案--------------------
you can using String#format when you use JDK1.5
such as;
System.out.println(String.format( "%1f ",b));
------解决方案--------------------
/**
* 格式化欄位值
* @param sValue 原欄位值
* @param cType 欄位數據類型
* @return 整理後的欄位值
*/
public static String formatField(String sValue, char cType) {
String sDefault;
switch (cType) {
case 'N ': sDefault = "0 "; break;
case 'P ': sDefault = "0.00 "; break;
default: sDefault = " ";
}
if (sValue == null || " ".equalsIgnoreCase(sValue) || "null ".equalsIgnoreCase(sValue)) {
sValue = sDefault;
} else {
sDefault = sValue;
switch (cType) {
case 'D ':
sValue = convertDate(sDefault);
break;
case 'N ':
sValue = (new DecimalFormat( "#,##0 ")).format(Double.parseDouble(sDefault));
break;
case 'P ':
sValue = (new DecimalFormat( "#,##0.00 ")).format(Double.parseDouble(sDefault));
break;
}
}
return sValue;
}