首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:Java5:BigInteger、BigDecimal详解

Java5:BigInteger、BigDecimal详解

www.jz123.cn  2010-10-22   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  从Java4到Java5,Java对BigInteger、BigDecimal两个类功能一直再做扩展与改进。主要原因是这两个数据类型很重要,在高精度的计算中全靠这两个数据类型了。BigInteger和BigDecimal分别表示任意精度的整数与浮点数。

  本文中不在追溯各个版本的变化,只看Java5中两个类的使用。

  一、java.math.BigInteger

  不可变的任意精度的整数。 此类的用法比较简单些,也不存在舍入等操作。

 


 package lavasoft;
  import java.math.BigInteger;
  import java.util.Random;
  /**
  * 测试BigInteger
  *
  * @author leizhimin 2009-11-17 12:49:41
  */
  public class TestBigInteger {
  public static void main(String[] args) {
  System.out.println("-------------------构造BigInteger---------------------");
  //通过byte数组来创建BigInteger
  BigInteger bi1 = new BigInteger(new byte[]{1, 1});
  System.out.println("bi1=" + bi1.toString());
  //创建带符号的BigInteger
  BigInteger bi2 = new BigInteger(-1, new byte[]{1, 1});
  System.out.println("bi2=" + bi2.toString());
  //创建带符号的BigInteger随机数
  BigInteger bi3 = new BigInteger(128, 20, new Random());
  System.out.println("bi3=" + bi3.toString());
  //通过10进制字符串创建带符号的BigInteger
  BigInteger bi4 = new BigInteger("12342342342342123423423412341");
  System.out.println("bi4=" + bi4.toString());
  //通过10进制字符串创建带符号的BigInteger
  BigInteger bi5 = new BigInteger("88888888888888888888888888888", Character.digit('a', 33));
  System.out.println("bi5=" + bi5.toString());
  System.out.println("BigInteger的常量:");
  System.out.println("BigInteger.ZERO=" + BigInteger.ZERO);
  System.out.println("BigInteger.ONE=" + BigInteger.ONE);
  System.out.println("BigInteger.TEN=" + BigInteger.TEN);
  System.out.println("-------------------使用BigInteger---------------------");
  System.out.println("bi1的相反数=" + bi1.negate());
  System.out.println("bi1的相反数=" + bi1.negate());
  System.out.println("bi1+bi2=" + bi1.add(bi2));
  System.out.println("bi1-bi2=" + bi1.subtract(bi2));
  System.out.println("bi1*bi2=" + bi1.multiply(bi2));
  System.out.println("bi1/bi2=" + bi1.divide(bi2));
  System.out.println("bi1的10次方=" + bi1.pow(10));
  System.out.println("bi1的10次方=" + bi1.pow(1));
  BigInteger[] bx = bi4.divideAndRemainder(bi1);
  System.out.println(">>>:bx[0]=" + bx[0] + ",bx[1]=" + bx[1]);
  System.out.println("bi2的绝对值=" + bi2.abs());
  }
  }

  运行结果:


  -------------------构造BigInteger---------------------
  bi1=257
  bi2=-257
  bi3=175952079487573456985958549621373190227
  bi4=12342342342342123423423412341
  bi5=88888888888888888888888888888
  BigInteger的常量:
  BigInteger.ZERO=0
  BigInteger.ONE=1
  BigInteger.TEN=10
  -------------------使用BigInteger---------------------
  bi1的相反数=-257
  bi1的相反数=-257
  bi1+bi2=0
  bi1-bi2=514
  bi1*bi2=-66049
  bi1/bi2=-1
  bi1的10次方=1256988294225653106805249
  bi1的10次方=257
  >>>:bx[0]=48024678374872075577523005,bx[1]=56
  bi2的绝对值=257
  Process finished with exit code 0

上一篇:使用实时Java降低Java应用程序的易变性(3) 下一篇:Java6开发WebService入门

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图