import java.text.NumberFormat;
/**
* 通过java提供的API获取百分数
* @author jueyue
*
*/
public class GetPercentage {
public static void main(String[] args) {
double precent = 12.5D/15.36D;
System.out.println("直接得到的小数是:" +precent);
System.out.println();
NumberFormat nf = NumberFormat.getPercentInstance();
nf.setMinimumFractionDigits(2);//设置要保留几位小数
System.out.println("百分化之后的数 "+nf.format(precent));
System.out.println(formatRates(12.5D,15.36D));
}
//不用API来获得
public static String formatRates(double o_data,double n_data ) {
Double val=(n_data-o_data)/o_data;//得到相应的小数
System.out.println("直接得到的小数为:"+val);
Double ret = null;
val = val*100 ;
int precision = 2 ;
try {
double factor = Math.pow(10, precision); //指数的获取
System.out.println(Math.floor(val * factor + 0.5) / factor+" ------floor");
ret = new Double(Math.floor(val * factor + 0.5) / factor);
} catch (Exception e) {
e.printStackTrace();
}
String tmp = String.valueOf(ret); //这个是如果不足后面两位添加零
if (tmp.substring(tmp.indexOf('.')+1).length()<2){
tmp = tmp + "0" ;
}
return tmp + "%";
}
}