开发过程中,通常会遇到一个问题:我们需要将一个数值转换为格式化的数值,比:3.145678保留两位有效数字,这个时候我们就需要使用DecimalFormat了。
基础使用
DecimalFormat的基础使用是几个占位符,一般来说,我们只需要使用0和#即可满足日常大多数场景
如下例子说明
new DecimalFormat("00.00").format(3.14567);//结果:03.15 new DecimalFormat("0.000").format(3.14);//结果:3.140 new DecimalFormat("00.000").format(3.14);//结果:03.140 new DecimalFormat("00.00").format(13.14567);//结果:13.15 new DecimalFormat("0.000").format(13.14567);//结果:13.146 new DecimalFormat("0.00").format(13.14567);//结果:13.15
使用0占位符的时候:
1、 比实际数字的位数多,不足的地方用0补上。
2、 比实际数字的位数少:整数部分不改动,小数部分,四舍五入(其实并不是四舍五入,而是默认的RoundingMode.HALF_EVEN方式,下面会讲到DecimalFormat的舍入方式)
new DecimalFormat("##.##").format(3.14567);//结果:3.15 new DecimalFormat("#.###").format(3.14);//结果:3.14 new DecimalFormat("##.###").format(3.14);//结果:3.14 new DecimalFormat("#.###").format(13.145678);//结果:13.146 new DecimalFormat("##.##").format(13.14567);//结果:13.15 new DecimalFormat("#.##").format(13.14567);//结果:13.15
使用#占位符的时候:
1、 比实际数字的位数多,不变。
2、 比实际数字的位数少:整数部分不改动,小数部分,四舍五入(其实并不是四舍五入,而是默认的RoundingMode.HALF_EVEN方式,下面会讲到DecimalFormat的舍入方式)。
这个地方有一个需要注意的地方,#不会保留多余的0
new DecimalFormat("00.00").format(00.100);//00.10 new DecimalFormat("##.##").format(00.100);//0.1
参考链接:https://www.jianshu.com/p/c1dec1796062