BigDecimal保留两位小数及格式化成百分比
来源:互联网 发布:终极算法 pdf 编辑:程序博客网 时间:2024/05/16 18:13
在项目中经常会用到小数的一些计算,而float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确。所以有时候必须要采用BigDecimal。
public class Demo {
public static void main(String[] args) {
BigDecimal a =null;
Integer faultRate = 6;
a = BigDecimal.valueOf(faultRate.doubleValue()/3);
BigDecimal b =a.setScale(2, RoundingMode.HALF_UP);//保留两位小数
System.out.println("结果是"+b);
//下面将结果转化成百分比
NumberFormat percent = NumberFormat.getPercentInstance();
percent.setMaximumFractionDigits(2);
System.out.println(percent.format(b.doubleValue()));
}
}
运行结果是:
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和ROUND_DOWN作用一样
setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
比如:BigDecimal b = new BigDecimal("123.456");
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!
4:对于一般add、subtract、multiply方法的小数位格式化如下:
System.out.println("mData=" + mData);
- BigDecimal保留两位小数及格式化成百分比
- BigDecimal保留两位小数及格式化成百分比
- BigDecimal 保留两位小数
- BigDecimal除法后保留两位小数
- BigDecimal除法后保留两位小数
- Struts2 S标签 数目字格式化成金额输出(保留两位小数)
- datatable excelHtml5 自定义列格式(百分比保留两位小数)
- 加减乘除,保留两位小数,生成百分比(%)
- sql中如何计算百分比 ,并保留两位小数
- java BigDecimal加法/减法/乘法/除法 保留两位小数
- java保留2位小数及BigDecimal使用
- 保留两位小数
- 保留两位小数
- 保留两位小数
- 保留两位小数
- 保留两位小数
- 保留两位小数
- 保留两位小数
- Proiect Euler problem 4 : Largest palindrome product
- module.exports与exports,export与export default之间的关系和区别
- [Qt] 我的一款射击游戏及设计模式
- MapReducer优化
- 动态规划题型总结
- BigDecimal保留两位小数及格式化成百分比
- nginx模块解析
- swift get、set、willSet和didSet
- Linked List Cycle II
- Android 7.0 行为变更 通过FileProvider在应用间共享文件吧
- 框架学习之spring整合hibernate、struts2框架-01基础配置
- SQL 使用update case when 批量更新
- 多重背包的二进制优化
- LR入门