public class DoubleToPercentformat {
/**
* 将double类型数据转换为百分比格式,并保留小数点前IntegerDigits位和小数点后FractionDigits位
* @param d
* @param IntegerDigits
* @param FractionDigits
* @return
*/
public static String getPercentFormat(double d,int IntegerDigits,int FractionDigits){
NumberFormat nf = java.text.NumberFormat.getPercentInstance();
nf.setMaximumIntegerDigits(IntegerDigits);//小数点前保留几位
nf.setMinimumFractionDigits(FractionDigits);// 小数点后保留几位
String str = nf.format(d);
return str;
}
}
puic class Convert{ public static void main(String args[]){ float num=28.8f; int i=(int)num; float f=num-i; intln(num+"的整数部分="+i+"\t小数部分为"+f); } }
第一、楼上的方法并不是面向对象的思想,根本没法在实际中用,用的话还需要修改。 第二、楼上的方法截取小数部分后,后面的小数部分会多几个数字。比如,截取123.321的小数部分后,会显示0.32100055。 我的方法完全克服了楼上方法的缺点。 我先编写一各类ApartFloat用于分离float型浮点数。用户想要分离浮点数的时候,只需调用这个类里面的两个静态方法既可。 其中,returnIntegralPart(float n)方法用于返回要分离的浮点数的整数部分;returnDecimalPart(float n)方法用于返回要分离的浮点数的小数部分。 ApartFloat类源代码: //这个类用于分解浮点数 public class ApartFloat{ //提取浮点数的整数部分 static int returnIntegralPart(float n){ int i=(int)n; return i; } //提取浮点数的小数部分 //提取小数部分时我把数字转换成字符串再进行截取 //这样做就不会出现截得的小数后面增加其他数字的现象 static String returnDecimalPart(float n){ Float m=new Float(n); String i= String(); int a= dexOf("."); i= bstring(a+1); return i; } } 用户可以在任何地方的任何类里调用这两个方法来分离浮点数。例如,象下面这样调用: public class Aaa{ public static void main(String[] args){ intln("我需要一个浮点数123.321的整数部分:"+ turnIntegralPart(123.321f)); intln("我需要一个浮点数123.321的小数部分:"+ turnDecimalPart(123.321f)); } } 想分离谁就在括号里填谁即可,但注意一定要是float型。