用下面的方法String formatFloat(float f)
{ String returnStr="";
String postStr="0.0";
String tempStr=String.valueOf(f);
int x=-1;
int pointPos=tempStr.indexOf(".");
if(tempStr.startsWith("0."))
postStr=tempStr;
else
{
postStr="0."+tempStr.substring(0,pointPos)+tempStr.substring(pointPos+1,tempStr.length());
x=pointPos-1;
}
returnStr=getReturnStr(postStr,x);
return returnStr;
}
//_________________________________
String getReturnStr(String tempStr,int x)
{ int len=tempStr.length();
String subStr=tempStr.substring(2,len);
while(subStr.startsWith("0"))
{
subStr=subStr.substring(1,subStr.length());
x--;
}
int subLen=subStr.length();
if(subLen>6)
{
subStr=subStr.substring(0,6);
}
else if(subLen<6)
{
for(int i=0;i<(6-subLen);i++)
{
subStr=subStr+"0";
}
}
String returnStr="0.0";
if(x<0)
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length())+"E"+String.valueOf(x);
else if(x==0)
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length());
else
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length())+"E+"+String.valueOf(x);
return returnStr;
}
{ String returnStr="";
String postStr="0.0";
String tempStr=String.valueOf(f);
int x=-1;
int pointPos=tempStr.indexOf(".");
if(tempStr.startsWith("0."))
postStr=tempStr;
else
{
postStr="0."+tempStr.substring(0,pointPos)+tempStr.substring(pointPos+1,tempStr.length());
x=pointPos-1;
}
returnStr=getReturnStr(postStr,x);
return returnStr;
}
//_________________________________
String getReturnStr(String tempStr,int x)
{ int len=tempStr.length();
String subStr=tempStr.substring(2,len);
while(subStr.startsWith("0"))
{
subStr=subStr.substring(1,subStr.length());
x--;
}
int subLen=subStr.length();
if(subLen>6)
{
subStr=subStr.substring(0,6);
}
else if(subLen<6)
{
for(int i=0;i<(6-subLen);i++)
{
subStr=subStr+"0";
}
}
String returnStr="0.0";
if(x<0)
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length())+"E"+String.valueOf(x);
else if(x==0)
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length());
else
returnStr=subStr.substring(0,1)+"."+subStr.substring(1,subStr.length())+"E+"+String.valueOf(x);
return returnStr;
}
{
DecimalFormat df = new DecimalFormat("#,##0.0##");
public static void main(String k[]){
fnum f = new fnum();
}
public fnum(){
StringBuffer d = new StringBuffer("");
df.format(123443123.3343333,d,new FieldPosition(2));
System.out.println(d);
}
}
hexiaofeng(java爱好者)谢谢提供思路。