我是靠谱客的博主 俊逸小甜瓜,最近开发中收集的这篇文章主要介绍java开发中常用类型BigDecimal对应数据库中decimal类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.0 BigDecimal介绍

BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。
如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。
注:可以处理任意长度的浮点数运算。

2.0 BigDecimal 计算

BigDecimal b = new BigDecimal(10.11);
BigDecimal b2 = new BigDecimal(11.11);
BigDecimal add = b2.add(b); //加
BigDecimal subtract = b.subtract(b2);//减
BigDecimal multiply = b.multiply(b2); // 乘
BigDecimal divide2 = b.divide(b2,2,BigDecimal.ROUND_FLOOR);//除
除比较特殊,需要定义一下精度

结果
21.2199999999999988631316227838397026062011718750
-1.0000000000000000000000000000000000000000000000
112.32209999999998793782651773653956776922121212018549664402033982923967414535582065582275390625
0.90     

设置精度

.setScale()来设置精度

 BigDecimal b3 = new BigDecimal(10.22);
  System.out.println(b3);
  System.out.println(b3.setScale(10,BigDecimal.ROUND_FLOOR));
 System.out.println(b3.setScale(10,BigDecimal.ROUND_HALF_DOWN));
  System.out.println(b3.setScale(10,BigDecimal.ROUND_HALF_UP));

结果
10.2200000000000006394884621840901672840118408203125
10.2200000000
10.2200000000
10.2200000000

3.java中 BigDecimal类型的可以转换到double类型

用变量.doubleValue();函数  即可将 BigDecimal 类型数据 转化为 double类型!

其他细节

BigDecimal c = new BigDecimal("1234.00");
System.out.println(c);
BigDecimal c1 = new BigDecimal(1234);
System.out.println(c1);

结果:
1234.00
1234

如果需要精确计算,要用String来够造BigDecimal!

BigDecimal比较大小


可以通过BigDecimal的compareTo方法来进行比较。
返回的结果是int类型,-1表示小于,0是等于,1是大于。
equals进行BigDecimal比较时,不仅比较值,而且还比较精度

注意:
数据库中的decimal类型可以插入null对象,但是不能插入“null”字符串

最后

以上就是俊逸小甜瓜为你收集整理的java开发中常用类型BigDecimal对应数据库中decimal类型的全部内容,希望文章能够帮你解决java开发中常用类型BigDecimal对应数据库中decimal类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部