packagecn.itcast.web.testUtil;
importjava.text.NumberFormat;
/*
*输出结果
*小数0.33666666666666667
*百分数33.67%
*百分数:33.67%
*/
publicclassTestDouble {
publicstaticvoidmain(String[] args) {
//这里的数后面加“D”是表明它是Double类型,否则相除的话取整,无法正常使用
doublepercent = 50.5D / 150D;
//输出一下,确认你的小数无误
System.out.println("小数"+ percent);
//获取格式化对象
NumberFormat nt = NumberFormat.getPercentInstance();
//设置百分数精确度2即保留两位小数
nt.setMinimumFractionDigits(2);
//最后格式化并输出
System.out.println("百分数"+ nt.format(percent));
//转换成字符串输出:String.valueOf
System.out.println("百分数:"+String.valueOf(nt.format(percent)));
}
}
转换成小数
packagecn.itcast.web.testUtil;
import java.math.BigDecimal;
import java.text.DecimalFormat;
importjava.text.Format;
importjava.text.NumberFormat;
/*
*
保留两位小数:1.11
保留两位小数百分比111.00%
1.11
保留两位小数百分比111.12%
1.11
保留两位小数百分比111.12%
1.11
保留两位小数百分比111.12%
*/
publicclass TestFloat {
double f =1.1112315585;
NumberFormat nt =NumberFormat.getPercentInstance();
public void m1() {
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("保留两位小数:"+f1);
nt.setMinimumFractionDigits(2);
System.out.println("保留两位小数百分比"+nt.format(f1));
}
/**
* DecimalFormat转换最简便
*/
public void m2() {
//要是整数部分即要这样表示#0.00
DecimalFormat df = newDecimalFormat("#.00");
System.out.println(df.format(f));
nt.setMinimumFractionDigits(2);
System.out.println("保留两位小数百分比"+String.valueOf(nt.format(f)));
}
/**
* String.format打印最简便
*/
public void m3() {
String value=String.format("%.2f", f);
System.out.println(value);
//转换成百分比必须 为number类型
nt.setMinimumFractionDigits(2);
System.out.println("保留两位小数百分比"+(nt.format(f)));
}
public void m4() {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
nt.setMinimumFractionDigits(2);
System.out.println("保留两位小数百分比"+(nt.format(f)));
}
public static void main(String[] args) {
TestFloat f = new TestFloat();
f.m1();
f.m2();
f.m3();
f.m4();
}
}