zoukankan      html  css  js  c++  java
  • Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal;或者import java.math.*;

    以下从几个方面对BigIntegerBigDecima做一个简单的比較:

    一.常量

    BigInteger:ONE,ZERO,TEN分别代表1,0,10.

    其定义类似于:public static final BigInteger ONE = valueOf(1);

    BigDecimal:除了以上三个常量外还有8个关于舍入的常量:ROUND_UP,ROUND_DOWN,ROUND_CEILING,ROUND_FLOOR,ROUND_HALF_UP,

    ROUND_HALF_DOWN,ROUND_HALF_EVEN,ROUND_UNNECESSARY。详细舍入模式,请查阅Java API。

    二.声明赋值

    BigInteger:BigInteger bi = new BigInteger(byte[] val) ;

    new BigInteger(int signum, byte[] magnitude) ;

    new BigInteger(int bitLength, int certainty, Random rnd) 。

    new BigInteger(int numBits, Random rnd) 。

    new BigInteger(String val) 。

    new BigInteger(String val, int radix) ;

    构造函数仅仅能接受这几种类型,,比方这样定义就是错误的:BigInteger bi = new BigInteger(100);

    或:BigInteger bi = BigInteger.valueOf(100);

    数组定义与基本类型类似.

    BigDecimal:BigDecimal bd = new BigDecimal(100);或:BigDecimal bd = BigDecimal.valueOf(100);

    BigDecimal的构造函数比BigInteger多一些,感觉用起来更方便些

    顺便说一下,java.util包中的Scanner类实现了nextBigInteger()和nextBigDecimal()方法,能够用来读入控制台输入的BigInteger和BigDecimal.给个样例:

    三.相关函数

    add(),subtract(),pow(),abs(),multiply()等等这一类就不介绍了,奇妙的是probablePrime(int bitLength, Random rnd),  nextProbablePrime()这一类竟然和素数扯得上关系。

    BigDecimal关于格式控制的方法多了几个,这对处理各种不同格式的输出是非常实用的。

    stripTraillingZeros():把不影响数值大小的0全去掉。

    1.50 ->1.5;

    1.00->1;

    这功能非常实用吧。

    大家都知道JAVA的类一般都要带toString这种方法的。BigDecimal则有toString,toPlainString和toEngineeringString三种表示成字符串的方法。

    以下是这三种方法各自的特点:

    toString: using scientific notation if an exponent is needed;

    toEngineeringString:using engineering notation if an exponent is needed.

    toPlainString:without an exponent field.


     




  • 相关阅读:
    maven_常用命令
    tomcat_server.xml常用配置
    tomcat线程池原理
    Tomcat处理HTTP请求原理&线程池
    javaweb-javaScript(一)
    javaweb-html快速入门
    javaweb-css
    javaweb-单元测试与注解
    javaweb-文件的上传下载
    javaweb-jsp开发模式+JSON插件
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5332157.html
Copyright © 2011-2022 走看看