Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79687
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 839
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-12 14:38
个人简介

我在收集一些石头,我期待它们有一天能够串联成一串项链。

文章分类

全部博文(31)

文章存档

2013年(31)

我的朋友

分类: Java

2013-04-22 18:07:55

    写过那些模拟大数相乘的代码就之后,就希望这样的东西能够封装起来,省得每次写起来容易出错。
    Java中有提供特大整数和浮点数的类,以下是来自《Java SE6.0 编程指南》的实例。
    1.整数

点击(此处)折叠或打开

  1. package wyf.jc;
  2. import java.math.*;
  3. public class Sample12_14
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         //创建了两个BigInteger对象bi1与bi2
  8.         BigInteger bi1=new BigInteger("111119223372036854775808");
  9.         BigInteger bi2=new BigInteger("111110000000000000000000");
  10.         //声明了一个BigInteger引用bi3
  11.         BigInteger bi3;
  12.         System.out.println("bi1 = "+bi1+",bi2 = "+bi2+"。");
  13.         //使用加操作
  14.         bi3=bi1.add(bi2);
  15.         System.out.println("bi1 + bi2 = "+bi3);
  16.         //使用减操作
  17.         bi3=bi1.subtract(bi2);
  18.         System.out.println("bi1 - bi2 = "+bi3);
  19.         //使用乘操作
  20.         bi3=bi1.multiply(bi2);
  21.         System.out.println("bi1 * bi2 = "+bi3);
  22.         //使用除操作
  23.         bi3=bi1.divide(bi2);
  24.         System.out.println("bi1 / bi2 = "+bi3);
  25.         //使用求余操作
  26.         bi3=bi1.mod(bi2);
  27.         System.out.println("bi1 % bi2 = "+bi3);
  28.         //使用取负数操作
  29.         bi3=bi1.negate();
  30.         System.out.println("-bi1 = "+bi3);
  31.         //取bi1的符号
  32.         if(bi1.signum()==1)
  33.         {
  34.             System.out.println("bi1 为正数,其符号为'+'!!!");
  35.         }            
  36.         //比较bi1与bi2的大小
  37.         if(bi1.compareTo(bi2)>0)
  38.         {
  39.             System.out.println("bi1 大于 bi2 !!!");
  40.         }            
  41.     }
  42. }
    整数运算范围超过long型
    2.浮点数
    

点击(此处)折叠或打开

  1. package wyf.jc;
  2. import java.math.*;
  3. public class Sample12_16
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         //分别创建值为3.8与0.7的BigDecimal对象bd1与bd2
  8.         BigDecimal bd1=new BigDecimal("3.8");
  9.         BigDecimal bd2=new BigDecimal("0.7");
  10.         //创建值为3.800的BigDecimal对象bd3
  11.         BigDecimal bd3=new BigDecimal("3.800");
  12.         //声明一个BigDecimal类型的引用bd4
  13.         BigDecimal bd4;
  14.         //打印对象bd1、bd2与bd3中封装的值
  15.         System.out.println("bd1 = "+bd1+",bd2 = "+bd2+",bd3 = "+bd3+"。");
  16.         //使用加操作
  17.         bd4=bd1.add(bd2);
  18.         System.out.println("bd1 + bd2 = "+bd4);
  19.         //使用减操作
  20.         bd4=bd1.subtract(bd2);
  21.         System.out.println("bd1 - bd2 = "+bd4);
  22.         //使用乘操作
  23.         bd4=bd1.multiply(bd2);
  24.         System.out.println("bd1 * bd2 = "+bd4);
  25.         //使用除操作
  26.         bd4=bd1.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
  27.         System.out.println("bd1 / bd2 = "+bd4);
  28.         bd4=bd3.divide(bd2,BigDecimal.ROUND_HALF_DOWN);
  29.         System.out.println("bd3 / bd2 = "+bd4);        
  30.         //将bd1与bd2进行比较
  31.         bd2=new BigDecimal("3.800");
  32.         if(bd1.compareTo(bd2)==0)
  33.         {
  34.             System.out.println("bd1 = "+bd1+" bd2 = "+bd2+" 则bd1与bd2是相等的!!");
  35.         }            
  36.     }
  37. }

    用于进行精确计算
阅读(704) | 评论(0) | 转发(0) |
0

上一篇:防SQL注入

下一篇:Java String

给主人留下些什么吧!~~