目次
BigIntegerクラス
BigDecimal Class
BigDecimal クラスの不完全除算の問題
ホームページ Java &#&チュートリアル Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

Apr 27, 2023 pm 10:40 PM
java bigdecimal biginteger

BigIntegerクラス

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进行比较
    }
}

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

除算を行うとき、小数点以下の桁がある場合、ここで小数点以下の桁が切り取られます。

もちろん整数型だけでなく浮動小数点型もあります。

BigDecimal Class

もちろん、浮動小数点型の精度も可能な限り大きくすることができます。

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));
    }
}

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

BigDecimal メソッドでは、Java 言語の精度の問題 (0.1x3 == 0.3 の結果が false になる問題など) をより適切に解決することもできます。

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

BigDecimal クラスの不完全除算の問題

しかし、BigDecimal を使用する際に注意しなければならない点もあります (遭遇した場合)割り算できない問題の場合は、エラーを報告するものを選択します。)

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

したがって、割り算を行うときは、切り捨て数値を与えるだけです。

最初にメソッドを見てみましょう:

public BigDecimal Division(BigDecimal divisor, intscale, introundingMode)

divisor - 除数。

scale - 小数点以下の桁数

roundingMode - 丸めモードを選択します

したがって、次のように記述できます:

Java の大きな数値 BigInteger および BigDecimal クラスの例の分析

丸めモードの選択:

モード 意味
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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

キーボードのボリュームキーが機能していません キーボードのボリュームキーが機能していません Aug 05, 2025 pm 01:54 PM

まず、checkifthefnkeysettingisinterferingboththevolumekeyaloneandfn volumekey、thentogglefnlockwithwithfn escifavaible.2.enterbios/uefiduringbootandenable functionkeysordisordisordisordisable hotkeymodetoEnsure -deure are areiin areaudiodawaudaidized.3.updedatedateoreer areaudiolizezized

Javaの2つの文字列を比較する方法は? Javaの2つの文字列を比較する方法は? Aug 04, 2025 am 11:03 AM

.equals()メソッドを使用して文字列コンテンツを比較します。これは、==はコンテンツではなくオブジェクト参照のみを比較するためです。 1。.equals()を使用して、文字列値を均等に比較します。 2。.equalsignorecase()を使用して、ケースを無視して比較します。 3. .compareto()を使用して、辞書の順序で文字列を比較し、0、負、または正の数を返します。 4。.compareToignOreCase()を使用して、ケースを無視して比較します。 5。objects.equals()またはセーフコールメソッドを使用して、ヌル文字列を処理して、ヌルポインターの例外を回避します。要するに、オブジェクトが位相にあるかどうかを確認するために明示的に必要な場合を除き、文字列コンテンツの比較に==を使用しないでください。

Javaで一連の文字列を結合する方法は? Javaで一連の文字列を結合する方法は? Aug 04, 2025 pm 12:55 PM

string.join()(java8)を使用することは、ストリングアレイを接続するための最も簡単な推奨方法であり、セパレーターを直接指定するだけです。 2。Javaの古いバージョンの場合、またはより多くのコントロールが必要な場合、StringBuilderを使用して手動でトラバースしてスプライスできます。 3。StringJoinerは、接頭辞や接尾辞などのより柔軟な形式を必要とするシナリオに適しています。 4。array.stream()とcollectors.jaining()を組み合わせて、結合する前に配列のフィルタリングまたは変換に適しています。要約すると、Java8以降を使用する場合、String.Join()メソッドを望む必要があります。これは簡潔で読みやすいですが、複雑なロジックには推奨されます。

Pythonロギングへのファイルの例 Pythonロギングへのファイルの例 Aug 04, 2025 pm 01:37 PM

Pythonのロギングモジュールは、FileHandlerを介してファイルにログを書き込むことができます。まず、FileHandlerを使用してapp.logを使用して、レベルを情報に設定するなど、BasicConfig構成ファイルプロセッサとフォーマットを呼び出します。第二に、ストリームハンドラーを追加して、同時にコンソールへの出力を実現します。高度なシナリオでは、TimeDrotatingFileHandlerを使用してログを時間単位で除算します。たとえば、= 'Midnight'を毎日生成し、7日間のバックアップを維持し、ログディレクトリが存在することを確認できます。 getlogger(__ name__)を使用して名前のロガーを作成し、生産することをお勧めします

Python Pandasスタイリングデータフレームの例 Python Pandasスタイリングデータフレームの例 Aug 04, 2025 pm 01:43 PM

JupyternotebookでPandasstylingを使用すると、データフレームの美しいディスプレイを実現できます。 1。Highlight_maxとhighlight_minを使用して、各列の最大値(緑)と最小値(赤)を強調表示します。 2.勾配の背景色(ブルースや赤など)をbackground_gradientを介して数値列に追加して、データサイズを視覚的に表示します。 3.カスタム関数Color_ScoreとApplyMapを組み合わせて、異なる分数間隔に対してテキスト色を設定しました(≥90グリーン、80〜89オレンジ、60〜79赤、

VUEの計算されたプロパティとメソッド VUEの計算されたプロパティとメソッド Aug 05, 2025 am 05:21 AM

計算にはキャッシュがあり、依存関係が変更されないままである場合、複数のアクセスは再計算されませんが、メソッドは呼び出されるたびに実行されます。 2.Computedは、応答性データに基づく計算に適しています。メソッドは、パラメーターが必要または頻繁に呼び出されるが、結果は応答性データに依存しないシナリオに適しています。 3.データの双方向の同期を実現することができますが、メソッドはサポートされていません。 4.要約:最初に計算されたコンピューターを使用してパフォーマンスを改善し、パラメーターを渡したり、操作を実行したり、キャッシュを回避したりするときにメソッドを使用します。

エッジPDFビューアが機能していません エッジPDFビューアが機能していません Aug 07, 2025 pm 04:36 PM

testthepdfinanapptodetermineisisiis withthefileoredge.2.enablethebuiltinpdfviewerbyturningoff "Alwaysopenpdffilesexternally" and "downloadpdffiles" inedgesettings.3.Clearbrowsingdataincluding andcachedfilestororeveren

See all articles