JavaにはIntegerクラスなど処理が必要なクラスがたくさんありますが、Integerクラスにも上限があります。その最大値は 2^31-1 です。
このとき、より大きな数を表現したい場合は、Integer では表現できないため、Java では BigInteger クラスが提供されています。
BigInteger クラスでサポートされる数値は無限であると言え、任意の精度の整数をサポートします。つまり、あらゆる値を損失なく正確に表現できます。
ここで、渡される数値型は文字型であるため、操作を実行するときに - * /
は使用できないことも強調したいと思います。これらの使用方法に対応します。
add()、subtract()、multiply()、divide()
いくつかの一般的なメソッドもあります:
equals方法。比較
コードのデモ:
import java.math.BigInteger; public class Demo01 { public static void main(String[] args) { BigInteger bigInteger1 = new BigInteger("2222222222222222222222222222222"); BigInteger bigInteger2 = new BigInteger("1111111111111111111111111111111"); System.out.println("bigInteger1大数为:" + bigInteger1); System.out.println("bigInteger2大数为:" + bigInteger2); System.out.println("两个大数相加:" + bigInteger1.add(bigInteger2));//加 System.out.println("两个大数相减:" + bigInteger1.subtract(bigInteger2));//减 System.out.println("两个大数相乘:" + bigInteger1.multiply(bigInteger2));//乘 System.out.println("两个大数相除:" + bigInteger1.divide(bigInteger2));//除 System.out.println("两个大数相比:" + bigInteger1.equals(bigInteger2));//equals进行比较 } }
除算を行うとき、小数点以下の桁がある場合、ここで小数点以下の桁が切り取られます。
もちろん整数型だけでなく浮動小数点型もあります。
もちろん、浮動小数点型の精度も可能な限り大きくすることができます。
import java.math.BigDecimal; public class Demo02 { public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("12232423432432.53241234324"); BigDecimal bigDecimal2 = new BigDecimal("2.0"); System.out.println("bigDecimal1值: " + bigDecimal1); System.out.println("bigDecimal2值: " + bigDecimal2); System.out.println("加:" + bigDecimal1.add(bigDecimal2)); System.out.println("减:" + bigDecimal1.subtract(bigDecimal2)); System.out.println("乘:" + bigDecimal1.multiply(bigDecimal2)); System.out.println("除:" + bigDecimal1.divide(bigDecimal2)); } }
BigDecimal メソッドでは、Java 言語の精度の問題 (0.1x3 == 0.3 の結果が false になる問題など) をより適切に解決することもできます。
しかし、BigDecimal を使用する際に注意しなければならない点もあります (遭遇した場合)割り算できない問題の場合は、エラーを報告するものを選択します。)
したがって、割り算を行うときは、切り捨て数値を与えるだけです。
最初にメソッドを見てみましょう:
public BigDecimal Division(BigDecimal divisor, intscale, introundingMode)
divisor - 除数。
scale - 小数点以下の桁数
roundingMode - 丸めモードを選択します
したがって、次のように記述できます:
丸めモードの選択:
モード | 意味 |
---|---|
ROUND_CEILING | 正の無限大に向かう数値を取得します |
ROUND_DOWN | 0に向かう数値を取得します |
#ROUND_FLOOR | 数値を負の無限大方向に取得します |
ROUND_HALF_DOWN | .5 |
に遭遇した場合は切り捨てます## ROUND_HALF_UP | .5 に遭遇した場合は切り上げます。 |
ROUND_HALF_EVEN | 5 に遭遇した場合は切り上げ、前の数値が大きい場合は調べます。 5 より小さい場合は上方向に進み、5 未満の場合は上方向に進みます。5 に等しい場合は下方向に進み、前方に進みます。 |
以上がJava の大きな数値 BigInteger および BigDecimal クラスの例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。