转贴,原址不详。 ================================= 在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下。
主要使用的类:java.text.DecimalFormat
1。实例化对象,可以用如下两种方法: DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); 因为DecimalFormat继承自NumberFormat。
2。设定小数位数
系统默认小数位数为3,如: DecimalFormat df=(DecimalFormat)NumberFormat.getInstance(); System.out.println(df.format(12.3456789)); 输出:12.346
现在可以通过如下方法把小数为设为两位: df.setMaximumFractionDigits(2); System.out.println(df.format(12.3456789)); 则输出为:12.35
3。将数字转化为百分比输出,有如下两种方法:
(1) df.applyPattern("##.##%"); System.out.println(df.format(12.3456789)); System.out.println(df.format(1)); System.out.println(df.format(0.015)); 输出分别为:1234.57% 100% 1.5%
(2) df.setMaximumFractionDigits(2); System.out.println(df.format(12.3456789*100)+"%"); System.out.println(df.format(1*100)+"%"); System.out.println(df.format(0.015*100)+"%"); 输出分别为: 1,234.57% 100% 1.5%
4。设置分组大小(就是几位一分隔) DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); df1.setGroupingSize(2); System.out.println(df1.format(123456789)); 输出:1,23,45,67,89
还可以通过df1.setGroupingUsed(false);来禁用分组设置,如: DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance(); df1.setGroupingSize(2); df1.setGroupingUsed(false); System.out.println(df1.format(123456789)); 输出:123456789
5。设置小数为必须为2位
DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance(); df2.applyPattern("0.00"); System.out.println(df2.format(1.2)); 输出:1.20 ============================================ 比如DB中的数,最多有4位小数点,希望 (1)整数位3位一隔。 (2)小数多于等于两位时,原样显示。 (3)小数少于两位时,补0。
格式可以写:###,###.00##
|