数字格式化format(整数位小数点格式化、小数位截取) |
您所在的位置:网站首页 › 小数取小数点后几位是什么 › 数字格式化format(整数位小数点格式化、小数位截取) |
说明: 由于做金融关系,需要对数字的整数位千位小数点分割,小数点截取到百分位(不是四舍五入),所以必须使用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 |