BigInteger 与 BigDecimal的区别
来源:互联网 发布:金山毒霸手机数据恢复 编辑:程序博客网 时间:2024/05/21 23:32
一般来说,BigInteger用的不是很多,BigDecimal用的稍微多一点,就比如说JDBC中,如果一个字段的数据库类型是Number, 那么getObject().getClass()的结果是java.math.BigDecimal。
BigInteger相比Integer的确可以用big来形容。它是用于科学计算,Integer只能容纳一个int, 所以最大值也就是2的31次访减去1,十进制为2147483647,如果需要计算更大的数,那么31位显然是不够用了,BigInteger能够容纳的位数那可就大了,我简单试了一下,上千位没有任何问题。除了容量大之外,BigInteger还封装了一些常见的操作,比如+-*/的基本操作,还有绝对值,相反数,最大公约数,是否是质数等等的运算。
BigDecimal的实现利用到了BigInteger, 所不同的是BigDecimal加入了小数位的概念,比如BigDecimal d = new BigDecimal(new BigInteger(ib),5);5表示的是5个小数位。BigDecimal可以用来做超大的浮点数的运算,比如+-*/的运算,其中除法运算是最复杂的,因为商的位数还有除不断的情况下末位小数点的处理都是需要考虑的。
new BigDecimal(-7.5).divide(new BigDecimal(1),0,BigDecimal.ROUND_UP);
上面的这个运算中divide的第二个参数表示商的小数点位数,最后一个参数指的是近似处理的模式。一共有一下几个模式: BigDecimal.ROUND_UP 最后一位如果大于0,则向前进一位,正负数都如此。
BigDecimal.ROUND_DOWN 最后一位不管是什么都会被舍弃。
BigDecimal.ROUND_CEILING 如果是正数,按ROUND_UP处理,如果是负数,按照ROUND_DOWN处理。例如7.1->8; -7.1->-7;所以这种近似的结果都会>=实际值。 BigDecimal.ROUND_FLOOR 跟BigDecimal_ROUND_CEILING相反。例如7.1->7;-7.1->-8。这种处理的结果<=实际值。
BigDecimal.ROUND_HALF_DOWN 如果最后一位<=5则舍弃,如果>5, 向前进一位。如7.5->7;7.6->8;-7.5->-7
BigDecimal.ROUND_HALF_UP 如果最后一位<5则舍弃,如果>=5, 向前进一位。反之舍弃。如7.5->8;7.4->7;-7.5->-8
BigDecimal.ROUND_HALF_EVEN 如果倒数第二位是奇数,按照BigDecimal.ROUND_HALF_UP处理,如果是偶数,按照BigDecimal.ROUND_HALF_DOWN来处理。如7.5->8;8.5->8;7.4->7;-7.5->-8
- BigInteger 与 BigDecimal的区别
- BigDecimal与BigInteger的一些常用方法
- BigInteger与BigDecimal
- JAVA大数BigInteger与BigDecimal
- BigInteger类,BigDecimal类,超大数字的运算与精度
- BigInteger和BigDecimal的实例
- BigDecimal+BigInteger
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- java 大数值BigInteger与BigDecimal
- BigInteger和BigDecimal的简单使用
- BigInteger和BigDecimal的应用场景
- 大数值——BigInteger类与BigDecimal类的概述
- BigDecimal ROUND_HALF_DOWN与ROUND_HALF_UP的区别
- 近似算法 集合覆盖问题代码实现 基于贪心策略 基于线性规划策略
- 破解必备,软件破解中常用API函数大全
- zabbix sender的使用
- Kotlin 资源大全
- 打开主页面直接到登录网页,而不是到首页
- BigInteger 与 BigDecimal的区别
- SSRS 如何设置报表参数的日期为当前日期
- Hadoop2.X架构浅析
- 最长上升子序列
- 【mysql 安装教程】MySQL5.7.18-下载安装教程
- 与人沟通技巧
- 文件上传
- NFS架构下使用realpath_turbo优化php性能
- Android获取外网IP地址