如果浮点数据比较小,可采用(int)强制转换方式,进行取整数后的两数比较,确定是否有小数位,进行相应的格式输出。但,浮点数据范围远超过int所能承受的范围,所以,这种方法局限性很大,所以,采用字符串检查处理方法可以满足所有浮点数的情况,代码如下,供参考:
public class test {
static String fmt_prt_double( Double d ) //自定义格式化输出函数
{
String s=String.format("%f", d);//将浮点数转为字符串
int i;
for( i=s.length()-1;i>=0;i-- ) //从串尾向前检查,遇到非0数据结束循环
{
if ( s.charAt(i)=='.' ) //遇到小数点结束,说明是个整数
break;
if ( s.charAt(i) != '0' ) //遇到小数中有非0值,结束
{
i++;
break;
}
}
return s.substring(0,i); //返回处理后的子串
}
//以下进行相应的数据验证
public static void main(String[] args) {
Double dd = 1234567890123.00;
System.out.println( fmt_prt_double(dd) );
dd = 1234567890123.01;
System.out.println( fmt_prt_double(dd) );
dd = 0.0;
System.out.println( fmt_prt_double(dd) );
dd = 0.00023;
System.out.println( fmt_prt_double(dd) );
}
}