好的程序员可以在Java培训中分享BigDecimal的用法。如果数值结果精度很高,可以使用BigDecimal,可以精确控制小数点后的数字。
Java培训
1.实例BigDecimal对象
通常,BigDecimal对象是通过使用String和int构造函数来实例化的,即
new BigDecimal(字符串val);
new BigDecimal(int val);
如果参数是double类型,则必须在输入参数之前将其转换为String类型。
new BigDecimal(double . tostring(123.123));
2.大十进制加法、减法、乘法和除法
加减乘除是指通过对BigDecimal对象点(。),以及返回的BigDecimal对象。
add:bigdecimal add=newbigdecimal(' 123.123 ')。add(newbigdecimal(' 123.123 '));- 246.246
MINUS:BigDecimal Subtract=NewBigDecimal(' 123.123 ')。subtract(NewBigDecimal(' 123.123 ');- 0.000
Multiply: bigdecimal倍数=newbigdecimal ('123.123 ')。multiply(newbigdecimal(' 123.123 '));- 15159.273129
除了:bigdecimal divide=newbigdecimal(' 123.123 ')。divide(newbigdecimal(' 123.123 '));- 1
注意:一般除法不直接除法,如果不能整除,这样运行程序会出错,所以一般除法会用到下面的重载方法。
新的BigDecimal('10 ')。除法(' 40 ',1,ROUND _ HALF _ UP);- 0.3
10/40的正常计算结果是0.25。这里是十除以四十,保留小数点后一位,四舍五入的模式。所以结果是0.3。
最常用的模式:
ROUND_HALF_UP:圆形。
ROUND_HALF_DOWN:向下选择(去掉保留小数位后的小数位)
3.缩放属性操作
得到小数位数:newbigdecimal ('123.123 ')。标度()-3
setscale()方法保留几个小数位。
-setScale(int NewScale):(注意:参数个数只能大于等于小数位数,圆括号中只能输入大于等于3的数字)
例如:newbigdecimal ('123.123 ')。设置刻度(3)-123.123
新的BigDecimal('123.123 ')。设置刻度(5) - 123.12300
- setScale(int newScale,RoundingMode roundingMode):
示例:new bigdecimal ('123.123 ')。setscale (2,舍入模式。半涨)-123.12
新的BigDecimal('123.125 ')。setScale(2,RoundingMode。半涨)- 123.13
新的BigDecimal('123.123 ')。setScale(2,RoundingMode。半_下)- 123.12
新的BigDecimal('123.125 ')。setScale(2,RoundingMode。半_下)- 123.12
4.比较大小
等于:newbigdecimal ('123.123 ')。compare to(newbigdecimal(' 123.123 ')==0-true
新的BigDecimal('123.123 ')。compare to(new BigDecimal(' 123.123 ')-0
如果compareTo的结果为0,则证明两个对象相等(当左不等于右时,第一个表达式为假)
小于:newbigdecimal ('123.122 ')。compare to(newbigdecimal(' 123.123 '))0-true
新的BigDecimal('123.122 ')。compare to(new BigDecimal(' 123.123 ')--1
如果compareTo的结果为-1,则证明左侧小于右侧(当左侧大于等于右侧时,第一个表达式为假)
大于:newbigdecimal ('123.124 ')。compare to(newbigdecimal(' 123.123 '))0-true
新的BigDecimal('123.124 ')。compare to(new BigDecimal(' 123.123 ')-1
如果compareTo的结果为1,则证明左侧大于右侧(当左侧小于或等于右侧时,第一个表达式为假)