数字格式化format(整数位小数点格式化、小数位截取)

您所在的位置:网站首页 小数取小数点后几位是什么 数字格式化format(整数位小数点格式化、小数位截取)

数字格式化format(整数位小数点格式化、小数位截取)

2024-07-09 20:02| 来源: 网络整理| 查看: 265

说明:

       由于做金融关系,需要对数字的整数位千位小数点分割,小数点截取到百分位(不是四舍五入),所以必须使用DecimalForma和BigDecimal来完成

1.DecimalForma

        这个类主要用来格式化整数位的,比如 5,412,345

下面是相关的方法:

 

DecimalFormat format 方法 大家在format()一个小数是,总是对格式中的'0'和'#'有些不解吧! eg: 1:new DecimalFormat("00.000").format(pi) //结果:03.142 2:new DecimalFormat("##.###").format(pi) //结果:3.142 都是对pi进行格式化,但第一个的结果是03.142,第二个的结果是3.142 这是什么原因呢? 0和#都是占位符,但在不同的地方,作用不一样。下面对他们做了具体的比较。 希望对大家有所帮助。 0: 比实际数字的位数多,不足的地方用0补上。 new DecimalFormat("00.00").format(3.14) //结果:03.14 new DecimalFormat("0.000").format(3.14) //结果: 3.140 new DecimalFormat("00.000").format(3.14) //结果:03.140 比实际数字的位数少:整数部分不改动,小数部分,四舍五入 new DecimalFormat("0.000").format(13.146) //结果:13.146 new DecimalFormat("00.00").format(13.146) //结果:13.15 new DecimalFormat("0.00").format(13.146) //结果:13.15 #: 比实际数字的位数多,不变。 new DecimalFormat("##.##").format(3.14) //结果:3.14 new DecimalFormat("#.###").format(3.14) //结果: 3.14 new DecimalFormat("##.###").format(3.14) //结果:3.14 比实际数字的位数少:整数部分不改动,小数部分,四舍五入 new DecimalFormat("#.###").format(13.146) //结果:13.146 new DecimalFormat("##.##").format(13.146) //结果:13.15 new DecimalFormat("#.##").format(13.146) //结果:13.15

其他的一些用法,(添加百分号,千分号,科学计数法,自定义正负数模板) 可参照 http://jff.iteye.com/blog/576737 http://blog.csdn.net/marcoleung/article/details/176514

 

2.BigDecimal

由于1中的方法保留两位小数,最后一位会四舍五入,所以用BigDecimal 来截取小数点后两位

下面是相关的方法:

 

BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4 setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍 setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入 setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字 0.00(个位数补成0因为传入的是0则会显示成:.00,所以各位也补0;) String xs = df.format(bd.setScale(2, BigDecimal.ROUND_DOWN));//直接截取小数点后两位(不四舍五入) return xs; } /** * 整数格式化 * @param value * @return */ public static String valueFormat(String value) { if (TextUtils.isEmpty(value)) { return "0.00"; } DecimalFormat df = new DecimalFormat("##,###,###"); String xs = df.format(new BigDecimal(value)); ....... return xs; } }

 

 

ฅ՞•ﻌ•՞ฅ ~ 厚着脸皮要个赞赏哈 ~ ฅ՞•ﻌ•՞ฅ

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3