java 大数类_Java大数类介绍
java能處理大數(shù)的類有兩個高精度大整數(shù)BigInteger和高精度浮點數(shù)BigDecimal,這兩個類位于java.math包內(nèi),要使用它們必須在類前面引用該包:import
java.math.BigInteger;和import
java.math.BigDecimal;或者import
java.math.*;
以下從幾個方面對BigInteger和BigDecima做一個簡單的比較:
一.常量
BigInteger:ONE,ZERO,TEN分別代表1,0,10.
其定義類似于:public static final BigInteger ONE = valueOf(1);
BigDecimal:除了以上三個常量外還有8個關(guān)于舍入的常量:ROUND_UP,ROUND_DOWN,ROUND_CEILING,ROUND_FLOOR,ROUND_HALF_UP,
ROUND_HALF_DOWN,ROUND_HALF_EVEN,ROUND_UNNECESSARY。詳細(xì)舍入模式,請查閱Java API。
二.聲明賦值
BigInteger:BigInteger bi = new??;
new??;
new?Random?rnd)?。
new?Random?rnd)?。
String?val, int?radix)?;
構(gòu)造函數(shù)僅僅能接受這幾種類型,,比方這樣定義就是錯誤的:BigInteger bi = new?BigInteger(100);
或:BigInteger bi = BigInteger.valueOf(100);
數(shù)組定義與基本類型類似.
BigDecimal:BigDecimal bd = new?BigDecimal(100);或:BigDecimal bd =?BigDecimal.valueOf(100);
BigDecimal的構(gòu)造函數(shù)比BigInteger多一些,感覺用起來更方便些
順便說一下,java.util包中的Scanner類實現(xiàn)了nextBigInteger()和nextBigDecimal()方法,能夠用來讀入控制臺輸入的BigInteger和BigDecimal.給個樣例:
三.相關(guān)函數(shù)
add(),subtract(),pow(),abs(),probablePrime(int?bitLength, Random?rnd),
nextProbablePrime()這一類竟然和素數(shù)扯得上關(guān)系。
BigDecimal關(guān)于格式控制的方法多了幾個,這對處理各種不同格式的輸出是非常實用的。
stripTraillingZeros():把不影響數(shù)值大小的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.
總結(jié)
以上是生活随笔為你收集整理的java 大数类_Java大数类介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山西省长治市壶关县龙港花苑二期五证齐全不
- 下一篇: java 机器码 虚拟机_Java虚拟机