写过那些模拟大数相乘的代码就之后,就希望这样的东西能够封装起来,省得每次写起来容易出错。
Java中有提供特大整数和浮点数的类,以下是来自《Java SE6.0 编程指南》的实例。
1.整数
-
package wyf.jc;
-
import java.math.*;
-
public class Sample12_14
-
{
-
public static void main(String[] args)
-
{
-
//创建了两个BigInteger对象bi1与bi2
-
BigInteger bi1=new BigInteger("111119223372036854775808");
-
BigInteger bi2=new BigInteger("111110000000000000000000");
-
//声明了一个BigInteger引用bi3
-
BigInteger bi3;
-
System.out.println("bi1 = "+bi1+",bi2 = "+bi2+"。");
-
//使用加操作
-
bi3=bi1.add(bi2);
-
System.out.println("bi1 + bi2 = "+bi3);
-
//使用减操作
-
bi3=bi1.subtract(bi2);
-
System.out.println("bi1 - bi2 = "+bi3);
-
//使用乘操作
-
bi3=bi1.multiply(bi2);
-
System.out.println("bi1 * bi2 = "+bi3);
-
//使用除操作
-
bi3=bi1.divide(bi2);
-
System.out.println("bi1 / bi2 = "+bi3);
-
//使用求余操作
-
bi3=bi1.mod(bi2);
-
System.out.println("bi1 % bi2 = "+bi3);
-
//使用取负数操作
-
bi3=bi1.negate();
-
System.out.println("-bi1 = "+bi3);
-
//取bi1的符号
-
if(bi1.signum()==1)
-
{
-
System.out.println("bi1 为正数,其符号为'+'!!!");
-
}
-
//比较bi1与bi2的大小
-
if(bi1.compareTo(bi2)>0)
-
{
-
System.out.println("bi1 大于 bi2 !!!");
-
}
-
}
-
}
整数运算范围超过long型
2.浮点数
-
package wyf.jc;
-
import java.math.*;
-
public class Sample12_16
-
{
-
public static void main(String[] args)
-
{
-
//分别创建值为3.8与0.7的BigDecimal对象bd1与bd2
-
BigDecimal bd1=new BigDecimal("3.8");
-
BigDecimal bd2=new BigDecimal("0.7");
-
//创建值为3.800的BigDecimal对象bd3
-
BigDecimal bd3=new BigDecimal("3.800");
-
//声明一个BigDecimal类型的引用bd4
-
BigDecimal bd4;
-
//打印对象bd1、bd2与bd3中封装的值
-
System.out.println("bd1 = "+bd1+",bd2 = "+bd2+",bd3 = "+bd3+"。");
-
//使用加操作
-
bd4=bd1.add(bd2);
-
System.out.println("bd1 + bd2 = "+bd4);
-
//使用减操作
-
bd4=bd1.subtract(bd2);
-
System.out.println("bd1 - bd2 = "+bd4);
-
//使用乘操作
-
bd4=bd1.multiply(bd2);
-
System.out.println("bd1 * bd2 = "+bd4);
-
//使用除操作
-
bd4=bd1.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
-
System.out.println("bd1 / bd2 = "+bd4);
-
bd4=bd3.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
-
System.out.println("bd3 / bd2 = "+bd4);
-
//将bd1与bd2进行比较
-
bd2=new BigDecimal("3.800");
-
if(bd1.compareTo(bd2)==0)
-
{
-
System.out.println("bd1 = "+bd1+" bd2 = "+bd2+" 则bd1与bd2是相等的!!");
-
}
-
}
-
}
用于进行精确计算
阅读(762) | 评论(0) | 转发(0) |