一.比较大小
inta=bigdemical1.com Pareto (bigdecimal2) )。
//a=-1,表示bigdemical小于bigdemical2;
//a=0,表示bigdemical等于bigdemical2;
//a=1,表示bigdemical大于bigdemical2;
1、bigdecimal(0.1 )和new bigdecimal (0.1 )不相等
因为0.1不能准确地表示为双精度。 (或者说,在这种情况下,不能表示为有限长度的二进制小数。
另一方面,String的构建方法是完全可预测的。 写入new bigdecimal“”0.1时,将创建bigdecimal。 这正好与预期的0.1相同。 因此,通常建议优先使用String结构方法。
与2、0进行比较
Bigdecimal b=new Bigdecimal('0'等于BigDecimal.ZERO
二.加减乘除
//加减乘除:
bigdecimal bignum1=new bigdecimal (' 10 );
bigdecimal bignum2=new bigdecimal ('5);
BigDecimal bignum3=null;
可以与0,0,==0进行比较
//加法
bignum3=bignum1.add(bignum2);
System.out.println (是指(bignum3);
//减法
bignum3=bignum1. subtract (bignum2);
System.out.println (差为' bignum3);
//乘法
bignum3=bignum1. multiply (bignum2);
System.out.println ('乘积为' bignum3);
//除法
bignum3=bignum1.divide(bignum2);
System.out.println ()商为(bignum3);
3、四舍五入
bigdecimal num=new bigdecimal (2.225667 ); //一般这样写是最好的
int count=num.scale (;
system.out.println(count ); //6返回小数位数
1. ROUND_DOWN
bigdecimal b=new bigdecimal (2.225667 ).setScale(2) 2,BigDecimal.ROUND_DOWN );
系统. out.println (b ); //2.22直接去除多余的位数
2. ROUND_UP
bigdecimal c=new bigdecimal (2.224667 ).setScale(2) 2,BigDecimal.ROUND_UP );
系统. out.println (c; //2.23与上述相反,进位处理
3. ROUND_CEILING (增大)
天花板(向上)、正进位向上,负进位向上
bigdecimal f=new bigdecimal (2.224667 ).setScale(2) 2,BigDecimal.ROUND_CEILING );
系统. out.println (f; //2.23正数时,相当于BigDecimal.ROUND_UP
bigdecimal g=new bigdecimal (-2.225667 ) ).setScale(2) 2,BigDecimal.ROUND_CEILING );
系统. out.println (g; //-2.22负时,相当于BigDecimal.ROUND_DOWN
4. ROUND_FLOOR (变小)。
地板(下)、正数舍位下、负数进位下
bigdecimal h=new bigdecimal (2.225667 ).setScale(2) 2,BigDecimal.ROUND_FLOOR );
系统. out.println (h; //2.22正数时,相当于BigDecimal.ROUND_DOWN
bigdecimal I=new bigdecimal (-2.224667 ) ).setScale(2) 2,BigDecimal.ROUND_FLOOR );
system.out.println(I; //-2.23负时,相当于BigDecimal.ROUND_UP
5. ROUND_HALF_UP
bigdecimal d=new bigdecimal (2.225 ) ).setScale(2) 2,BigDecimal.ROUND_HALF_UP );
system.out.println (round _ half _ up ' d ); //2.23四舍五入(如果舍去部分=.5则向上舍入) ) ) ) ) ) ) ) ) ) ) )。
6. ROUND_HALF_DOWN
bigdecimal e=new bigdecimal (2.225 ) ).setScale(2) 2,BigDecimal.ROUND_HALF_DOWN );
system.out.println (round _ half _ down ) e; //2.22四舍五入(舍弃部分. 5则进位) ) ) )。
7. ROUND_HALF_EVEN
bigdecimal j=new bigdecimal (2.225 ) ).setScale(2) 2,BigDecimal.ROUND_HALF_EVEN );
system.out.println(j; //2.22如果舍弃部分左边的数字是偶数,则为ROUND_HALF_DOWN
bigdecimal k=new bigdecimal (2.215 ) ).setScale(2) 2,BigDecimal.ROUND_HALF_EVEN );
system.out.println(k; //2.22如果舍弃部分左边的数字为奇数,则设为ROUND_HALF_UP