写过那些模拟大数相乘的代码就之后,就希望这样的东西能够封装起来,省得每次写起来容易出错。
Java中有提供特大整数和浮点数的类,以下是来自《Java SE6.0 编程指南》的实例。
1.整数
整数运算范围超过long型
2.浮点数
用于进行精确计算
阅读(69) | 评论(0) | 转发(0) |
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 !!!");
- }
- }
- }
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是相等的!!");
- }
- }
- }
用于进行精确计算
相关热门文章
给主人留下些什么吧!~~
评论热议