JAVA 浮点数转化为百分数,分离整数和小数部分 分类: Java 2015-08-04 18:11 10人阅读 评论(0) 收藏

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型。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted @ 2015-08-04 18:11  xiexie2015  阅读(512)  评论(0编辑  收藏  举报