网站设计的实例,企业推广软文范文,wordpress多用途主题推荐,住建部四库一平台文章目录前言1.代码实现2.方法详解注释前言
在项目中经常会用到小数的一些计算#xff0c;而float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算#xff0c;这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而#xff…
文章目录前言1.代码实现2.方法详解注释前言
在项目中经常会用到小数的一些计算而float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而它们没有提供完全精确的结果所以不应该被用于要求精确结果的场合。但是商业计算往往要求结果精确。所以有时候必须要采用BigDecimal。 1.代码实现
代码如下示例
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()));}
}运行结果
2.方法详解
BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数默认用四舍五入方式setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位如2.35会变成2.3setScale(1,BigDecimal.ROUND_UP)进位处理2.35变成2.4setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入2.35变成2.4setScaler(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)向最接近的数字舍入如果与两个相邻数字的距离相等则向相邻的偶数舍入。 注释
1scale指的是你小数点后的位数。比如123.456则score就是3. score()就是BigDecimal类中的方法啊。 比如:BigDecimal b new BigDecimal(“123.456”);b.scale(),返回的就是3. 2roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。 比如BigDecimal.ROUND_HALF_UP表示的就是4舍5入。 3pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)的意思是说我用一个BigDecimal对象除以divisor后的结果并且要求这个结果保留有scale个小数位roundingMode表示的就是保留模式是什么是四舍五入啊还是其它的你可以自己选 4对于一般add、subtract、multiply方法的小数位格式化如下 BigDecimal mData new BigDecimal(9.655).setScale(2, BigDecimal.ROUND_HALF_UP);System.out.println(mData mData);运行结果 mData9.66