本文共 1240 字,大约阅读时间需要 4 分钟。
八大基本数据类型:char byte double int long short boolean float
数值类型有: 4个整数型byte int long short
2个浮点型 float double
剩余1个字符型 char
1个布尔型 boolean
其中数值类型面临着很大的问题: 我想要小数点后10位参与运算,假设科学家在计算的过程只能精确到小数点后2位,那可是要出大问题的 int取值范围是[-2147483648, 2147483647],也就十个亿的长度,姓马名云和姓马名化腾每天面临的资产数字恐怕是很多个int类型,像这样的情况Java的基本数据类型就无法解决问题了 但是! 金融行业很多软件都是用Java语言所建立的,面临这一问题如何计算呢 同时平时在使用double类型的时候很容易出现的如下的情况 所以说,double只能供于一些对数值比较不敏感的行业或者场景使用
为此Java提供了BigDecimal对象来解决这一问题,这个对象也叫做大小数
既然是对象类型了,两个数值之间的加减乘除就不仅仅是通过+ - * /来解决了,肯定是通过方法来实现了
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
BigDecimal divisor : 这个不必多问,就是你的除数
int scale : 这个是获取的数字想保留几位小数 int roundingMode : 这个是获取的数字保留小数后,对后一位小数选取的模式(四舍五入/进位/舍去),但是这个值最大只能是7BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2
BigDecimal.ROUND_UP:直接进位,比如1.21如果保留1位小数,得到的就是1.3BigDecimal.ROUND_HALF_UP:四舍五入,2.35保留1位,变成2.4
BigDecimal.ROUND_HALF_DOWN:四舍五入,2.35保留1位,变成2.3
后边两种的区别就是如果保留的位数的后一位如果正好是5的时候,一个舍弃掉,一个进位。转载地址:http://ayhrb.baihongyu.com/