Java提供了大数字操作类在java.math包的BigInteger和BigDecimal。
BigInteger中较大整数的处理类。
BigDecimal对大小数的处理类。
除了名为String和basicdatapackage类的特殊类外,其他类的创建对象不能使用简化的初始化方法。 而是以标准初始化方法new构造函数()的形式初始化。
双精度; 双精度; 这两种结构方法有区别,请参考以下代码。
publicstaticbigdecimalbd1=new bigdecimal (1.1; publicstaticbigdecimalbd2=new bigdecimal (' 1.1 ); system.out.println(BD1; system.out.println(BD2; 1.10000000000000088178419700125232389053472656251.1这是因为double类型存储近似值,并且有许多虚数。 因此,双精度类型不能用于精确运算。 因此,通常最常用的是传递字符串的构建方法。
因为加减乘除BigDecimal是用来增大小数运算的,所以在BigDecimal类中实现了加减乘除的方法
Gublicbigdecimaladd (bigdecimal augend; //publicbigdecimalsubtract (bigdecimal subtrahend ); //publicbigdecimalmultiply (bigdecimalmultiplicand ); //publicbigdecimaldivide (bigdecimal divisor,int scale,int roundingMode ); //加减乘除很简单,不用说。 说明除法的话,除法其实有其他的构造方法,但是这个构造方法比较推荐。 其中第一个参数divisor是除数,第二个参数scale是精度,第三个参数roundingMode是处理模式,通常使用BigDecimal.ROUND_HALF_UP,表示四舍五入。
bigdecimal BD1=new bigdecimal (' 2.2 ); bigdecimal BD2=new bigdecimal (' 1.1 ); system.out.println (string.format (bd1bd 23360 % s (,BD1.add ) BD2 ).toString ) ); system.out.println (string.format (bd1-BD 2: % s (,BD1.subtract ) BD2 ).toString () ) ); system.out.println (string.format (bd1 * BD 2: % s ),bd1.multiply (bd2 ).toString ) ); system.out.println (string.format (bd1/BD 2: % s ),BD1.divide ) bd2,5,bigdecimal.round _ half _ u BD 1
bigdecimal BD1=new bigdecimal (' 2.2 ); int i=bd1.intValue (; system.out.println(I; //输出2 2、将BigDecimal转换为字符串类型
使用toString
bigdecimal BD1=new bigdecimal (' 2.2 ); String s=bd1.toString (; 系统. out.println (s; //输出2.2