浅析java中BigDecimal大数值类的使用
来源:互联网 发布:c语言输出星号金字塔 编辑:程序博客网 时间:2024/05/16 17:48
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。可以处理任意长度的浮点数运算。
BigDecimal的实现利用到了BigInteger, 所不同的是BigDecimal加入了小数位的概念,比如BigDecimal d = new BigDecimal(new BigInteger(num),5);5表示的是5个小数位。BigDecimal可以用来做超大的浮点数的运算,比如+-*/的运算,其中除法运算是最复杂的,因为商的位数还有除不断的情况下末位小数点的处理都是需要考虑的。
具体使用
计算:
加: a.add(b);
减: a.subtract(b);
乘: a.multiply(b);
除: a.divide(b,2);//2为精度取值
下面我们来看看除法的详细说明: divide(BigDecimal divisor, int scale, int roundingMode)
BigDecimal的setScale方法
BigDecimal.setScale()
方法用于格式化小数点
表示保留一位小数,默认用四舍五入方式
setScale(1)
直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_DOWN)
进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_UP)
四舍五入,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)
四舍五入,2.35变成2.3,如果是5则向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN)
更多模式请查询API
注意点一
scale指的是你小数点后的位数。 scale()就是BigDecimal类中的方法。如 BigDecimal b = new BigDecimal("123.456"); b.scale()返回的就是3
注意点二
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段, 有很多种,如 BigDecimal.ROUND_HALF_UP表示的就是4舍5入
- 浅析java中BigDecimal大数值类的使用
- 【JAVA核心技术】 大数值 BigDecimal
- java 大数值BigInteger与BigDecimal
- java中BigDecimal的使用
- Java中BigDecimal的使用
- java中BigDecimal的使用
- Java中BigDecimal的使用
- java中数值相关计算方法及BigDecimal的用法
- java中处理高精度大数字的类 BigDecimal, BigInteger
- BigDecimal 大数值 20170729
- 在JAVA中,使用BigDecimal进行大数据运算
- JAVA中大数字的的处理:BigInteger和BigDecimal
- java BigDecimal的使用
- 大数值——BigInteger类与BigDecimal类的概述
- 浅析java中的BigDecimal
- java中BigDecimal使用注意事项
- Java 中的数值运算-BigDecimal
- Java的数值精度的输出控制(包含BigDecimal)
- 传输层与数据链路层滑动窗口协议的异同
- 10+ powerful debugging tricks with Visual Studio
- 【新建项目&使用viewPager】实现一个Android电子书阅读APP
- 一个完整的ssm项目
- 单调递增最长子序列
- 浅析java中BigDecimal大数值类的使用
- poj A Bug's Life(关系并查集)
- AndroidStudio安装报错
- opencv 颜色识别
- POJ 2823 Sliding Window
- HDU 2073 JAVA
- 高精度幂的计算
- sdutacm-最短路径问题
- JAVA类型转换