BigDecimal数据类型(初始化,加减乘除,基本操作)
来源:互联网 发布:知乎 十号胖狐狸 编辑:程序博客网 时间:2024/05/18 03:52
BigDecimal为大数据类型,更精准的计算
1.初始化
1.1 字符串做参数
BigDecimal a =new BigDecimal(“1.22”);
doublevalue:1.2199999999999999733546474089962430298328399658203125
1.2 数字做参数
BigDecimal a =new BigDecimal(1.22);
construct with a String value: 1.22
注意1:String 构造方法是完全可预知的:写入 newBigDecimal(“0.1”) 将创建一个 BigDecimal,它正好等于预期的 0.1。因此,比较而言,通常建议优先使用String构造方法。
注意2:当double必须用作BigDecimal的源时,请注意,此构造方法提供了一个准确转换;它不提供与以下操作相同的结果:先使用Double.toString(double)方法,然后使用BigDecimal(String)构造方法,将double转换为String。要获取该结果,请使用static valueOf(double)方法
2.加减乘除操作
2.1加法运算
a.add(b)
BigDecimal a =new BigDecimal("1.22"); BigDecimal b =new BigDecimal("2.22"); a=a.add(b); System.out.println("aplus b is : " + a);
2.2减法运算
a.sub(b)
BigDecimal a =new BigDecimal("13.22"); BigDecimal b =new BigDecimal("2.22"); a=a.sub(b); System.out.println(a);
2.3乘法运算
a.multiply(b)
BigDecimal a =new BigDecimal("13.22"); BigDecimal b =new BigDecimal("2.22"); a=a.multiply(b); System.out.println(a);
2.4除法运算
a=a.divide(b,2)
a=a.divide(b,2,BigDecimal.’BigDecimal.舍入方式’)
2为保留小数点位数
BigDecimal.ROUND_HALF_EVEN为小数舍入方式,默认四舍五入
BigDecimal a =new BigDecimal("13.22"); BigDecimal b =new BigDecimal("2.22"); a=a.divide(b,2); System.out.println(a);
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常 解决方法:给divide方法设置精度及保留几位小数
舍入方式
BigDecimal枚举常量用法摘要 :
CEILING
向正无限大方向舍入的舍入模式。
DOWN
向零方向舍入的舍入模式。
FLOOR
向负无限大方向舍入的舍入模式。
HALF_DOWN
向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。
HALF_EVEN
向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
HALF_UP
向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。
UNNECESSARY
用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。
UP
远离零方向舍入的舍入模式。
3.取最大值,最小值,绝对值,相反数
3.1 a.max (b) //比较取最大值
3.2 a.min(b) //比较取最小值
3.3 a.abs()//取最绝对值
3.4 a.negate()//取相反数
- BigDecimal数据类型(初始化,加减乘除,基本操作)
- 两个BigDecimal数据类型比较、加减乘除、格式化
- 转:java中BigDecimal加减乘除基本用法
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal 加减乘除
- BigDecimal加减乘除运算
- 加减乘除的问题 - BigDecimal
- BigDecimal 类 加减乘除
- 判断一个对象是否为空
- angualrjs动态添加类名 动态改变css
- java进阶
- java二分查找算法(折半查找算法)实例
- jquery插件效果
- BigDecimal数据类型(初始化,加减乘除,基本操作)
- 谈谈数据库的ACID
- 模仿NGUI实现SoftClip(二)
- MATLAB入门
- 226. Invert Binary Tree
- ACM 吝啬的国度
- HBase实战
- 支付网关的设计
- PyTorch contiguous 的概念