次の方法で共有


BigDecimal クラス

定義

変更できない、任意の有効桁数の符号付き 10 進数。

[Android.Runtime.Register("java/math/BigDecimal", DoNotGenerateAcw=true)]
public class BigDecimal : Java.Lang.Number, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/math/BigDecimal", DoNotGenerateAcw=true)>]
type BigDecimal = class
    inherit Number
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IComparable
継承
BigDecimal
属性
実装

注釈

変更できない、任意の有効桁数の符号付き 10 進数。 A は BigDecimal 、任意の有効桁数の整数 #unscaledValue() 非スケーリング値 と 32 ビット整数 #scale() スケールで構成されます。 ゼロまたは正の場合、小数点以下桁数は小数点の右側の桁数です。 負の場合、数値のスケーリングされていない値に、スケールの否定の累乗に 10 が乗算されます。 したがって(unscaledValue &times; 10<sup>-scale</sup>)、によって表される数値のBigDecimal値です。

このクラスは BigDecimal 、算術、スケール操作、丸め、比較、ハッシュ、および書式変換の操作を提供します。 このメソッドは#toString、.BigDecimal

このクラスを使用すると、ユーザーは BigDecimal 丸め動作を完全に制御できます。 丸めモードが指定されておらず、正確な結果を表すことができない場合は、an ArithmeticException がスローされます。それ以外の場合は、演算に適切な MathContext オブジェクトを指定することで、選択した精度と丸めモードに計算を実行できます。 いずれの場合も、丸めの制御のために 8 <つの em>丸めモード</em> が提供されます。 このクラスの整数フィールド (たとえば#ROUND_HALF_UP) を使用して丸めモードを表すのは非推奨です。代わりに 、(などRoundingMode#HALF_UP) のRoundingModeenum列挙値を使用する必要があります。

MathContext有効桁数が 0 (たとえば) のオブジェクトが指定されている場合、MathContext#UNLIMITED算術演算は、オブジェクトを受け取たないMathContext算術メソッドと同様に正確です。 正確な結果を計算する場合、精度を 0 に設定したオブジェクトの MathContext 丸めモード設定は使用されないため、無関係です。 除算の場合、正確な商は無限に長い10進数の拡張を持つことができます。たとえば、1 を 3 で除算します。 商に非終端の 10 進拡張があり、正確な結果を返す演算が指定されている場合は、an ArithmeticException がスローされます。 それ以外の場合は、他の操作の場合と同様に、除算の正確な結果が返されます。

精度設定が 0 でない場合、算術の BigDecimal 規則は、ANSI X3.274-1996 および ANSI X3.274-1996/AM 1-2000 (セクション 7.4) で定義されている算術演算の選択モードと広く互換性があります。 これらの標準とは異なり、 BigDecimal 多くの丸めモードが含まれています。 これらの ANSI 標準と BigDecimal 仕様の間の競合は解決されます BigDecimal

同じ数値は異なる表現 (スケールが異なる) を持つ可能性があるため、算術と丸めの規則では、数値の結果と結果の表現で使用されるスケールの両方を指定する必要があります。

同じ数値の異なる表現は、同じ コーホートのメンバーと呼ばれます。 #compareTo(BigDecimal) の BigDecimal 自然な順序では、同じコーホートのメンバーが互いに等しいと見なされます。 これに対し、このメソッドでは #equals(Object) equals 、等価性を保持するために、数値と表現の両方が同じである必要があります。 メソッド#scale()#unscaledValue()の結果は、表現が異なる数値が等しい場合に異なります。

一般に、丸めモードと有効桁数の設定によって、正確な結果の桁数が返される桁数よりも多い場合 (除算と平方根の場合は無限に多い場合) に、演算によって結果が返される方法が決まります。

最初に、返す合計桁数は 's precision の設定でMathContext指定されます。これにより、結果の有効桁数が決まります。 数字の数は、正確な結果の左端の 0 以外の数字から始まります。 丸めモードは、破棄された末尾の数字が返された結果にどのように影響するかを決定します。

すべての算術演算子に対して、操作は、正確な中間結果が最初に計算された後、選択した丸めモードを使用して、精度設定で指定された桁数に丸められた (必要な場合) ように実行されます。 正確な結果が返されない場合、正確な結果の一部の桁位置は破棄されます。 丸めによって返される結果の大きさが大きくなると、先頭の "9" 桁に伝達されるキャリングによって新しい桁の位置が作成される可能性があります。 たとえば、値 999.9 を 3 桁に丸めると、数値は 100> と表される 1,000 に等しくなります。10<sup>1</sup>. このような場合、新しい "1" は返される結果の先頭桁の位置です。

パラメーターを持つ MathContext メソッドとコンストラクターの場合、結果が正しくありませんが、丸めモードの場合は RoundingMode#UNNECESSARY UNNECESSARY、an ArithmeticException がスローされます。

論理的な正確な結果に加えて、各算術演算には、結果を表す適切なスケールがあります。 各操作に推奨されるスケールを次の表に示します。

<table class="striped" style="text-align:left">caption Preferred Scale for Results of Arithmetic Operations </caption><thead><tr><th scope="col">Operation</th th><scope="col">Preferred Scale of Result</th></tr></thead><tbody><tr><th scope="row">Add</th><td>max(addend.scale(), augend.scale())</td><tr><th scope="row">Subtract><</th><td>max(minuend.scale(), subtrahend.scale())</td><tr><th scope="row">Multiply</th><td>multiplier.scale() + multiplicand.scale()</td><tr><th scope ="row">Divide</th><td>dividend.scale() - divisor.scale()</td><tr><th scope="row">Square root</th><td>radicand.scale()/2</td></tbody></table>

これらのスケールは、正確な算術結果を返すメソッドで使用されるスケールです。ただし、正確な結果の桁数が多い場合があるため、正確な除算ではより大きな小数点以下桁数を使用する必要があります。 たとえば、1/320.03125 です。

丸める前に、論理的な正確な中間結果のスケールが、その操作に適したスケールになります。 正確な数値の結果を数字で precision 表すことができない場合、丸めでは返される数字のセットが選択され、結果のスケールは中間結果のスケールから、実際に返される数字を表 precision すことができる最小スケールに縮小されます。 正確な結果を最大 precision 桁数で表すことができる場合は、優先スケールに最も近い小数点以下桁数で結果の表現が返されます。 特に、正確に表現可能な商は、末尾のゼロを削除し、小数点以下桁数を減らすことによって、数字未満 precision で表される場合があります。 たとえば、RoundingMode#FLOOR 床丸めモードを使用して 3 桁に丸める場合、 <br>

19/100 = 0.19 // integer=19, scale=2<br>

ただし、<br>

21/110 = 0.190 // integer=190, scale=3<br>

加算、減算、乗算の場合、スケールの減少は破棄される正確な結果の桁位置の数と等しくなります。 丸めによって、改行伝達によって新しい高位桁の位置が作成される場合、新しい桁位置が作成されない場合よりも、結果の追加の桁が破棄されます。

他の方法では、丸めセマンティクスが若干異なる場合があります。 たとえば、#pow(int, MathContext) 指定されたアルゴリズムを使用するメソッドの pow 結果は、最後の場所の 1 つの #ulp() ulp で複数の単位で丸められた数学的結果と異なる場合があります。

スケールの操作には、スケーリング/丸め操作と小数点モーション操作の BigDecimal2 種類の操作が用意されています。 スケーリング/丸め操作 (#setScale setScale および #round round) は、値がオペランドの値とほぼ同じ (または正確に)、小数点以下桁数または有効桁数が指定された値である値を返 BigDecimal します。つまり、格納されている数値の有効桁数は、その値に与える影響を最小限に抑えて増減します。 小数点モーション演算 (#movePointLeft movePointLeft および) は、 #movePointRight movePointRight指定した方向に指定した距離で小数点を移動することによってオペランドから作成された値を返 BigDecimal します。

32 ビット整数として、スケールの値のセットは大きくなりますが、境界付けされます。 オーバーフローまたはアンダーフローによって、結果のスケールが 32 ビット整数の範囲を超える場合、操作 ArithmeticExceptionで .

簡潔でわかりやすくするために、擬似コードはメソッドの BigDecimal 説明全体で使用されます。 擬似コード式 (i + j) は、"a の値は、 ." BigDecimalBigDecimali 追加 BigDecimaljされた値の短縮形です。 擬似コード式(i == j)は、"と同じ値jBigDecimalを表す場合BigDecimaliにのみ、 "true の短縮形です。 その他の擬似コード式も同様に解釈されます。 角かっこは、値を定義BigDecimalする特定BigIntegerのスケール ペアを表すために使用されます。たとえば、[19, 2] はBigDecimal、小数点以下桁数が 2 の 0.19 に等しい数値です。

このクラスのすべてのメソッドとコンストラクターは、任意の入力パラメーターのオブジェクト参照がnull渡されたときにスローNullPointerExceptionされます。

1.1 で追加されました。

の Java ドキュメントjava.math.BigDecimal

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

BigDecimal(BigInteger)

a を . BigIntegerBigDecimalに変換します。

BigDecimal(BigInteger, Int32)

BigIntegerスケーリングされていない値とスケールをint変換しますBigDecimal

BigDecimal(BigInteger, Int32, MathContext)

BigIntegerスケーリングされていない値とスケールをint、コンテキスト設定にBigDecimal従って丸め付けして、スケールを a に変換します。

BigDecimal(BigInteger, MathContext)

コンテキスト設定に従って、a BigIntegerBigDecimal 丸め処理に変換します。

BigDecimal(Char[])

a の文字配列表現BigDecimalBigDecimalを変換し、コンストラクターと同じ文字シーケンスを#BigDecimal(String)受け入れます。

BigDecimal(Char[], Int32, Int32)

サブ配列の指定を許可しながら、a BigDecimalBigDecimalの文字配列表現をコンストラクターと #BigDecimal(String) 同じ文字シーケンスを受け入れる A に変換します。

BigDecimal(Char[], Int32, Int32, MathContext)

a のBigDecimalBigDecimal文字配列表現を変換し、コンストラクターと同じ文字#BigDecimal(String)シーケンスを受け入れますが、サブ配列を指定し、コンテキスト設定に従って丸めを行うことができます。

BigDecimal(Char[], MathContext)

a BigDecimalBigDecimalの文字配列表現を変換し、コンストラクターと同じ文字 #BigDecimal(String) シーケンスを受け入れ、コンテキスト設定に従って丸めます。

BigDecimal(Double)

'doubleBigDecimalのバイナリ浮動小数点値の正確な 10 進表現doubleである a に変換します。

BigDecimal(Double, MathContext)

コンテキストの設定にBigDecimal従って丸めを使用して、a double を a に変換します。

BigDecimal(Int32)

intBigDecimal変換します。

BigDecimal(Int32, MathContext)

コンテキスト設定 intBigDecimal従って丸めを使用して、a を a に変換します。

BigDecimal(Int64)

a を . longBigDecimalに変換します。

BigDecimal(Int64, MathContext)

コンテキストの設定にBigDecimal従って丸めを使用して、a long を a に変換します。

BigDecimal(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

BigDecimal(String)

a BigDecimal の文字列形式を変換します BigDecimal

BigDecimal(String, MathContext)

コンテキスト設定に従って丸めを行って、a BigDecimalBigDecimalの文字列表現をコンストラクターと同じ文字列 #BigDecimal(String) を受け入れる A に変換します。

フィールド

RoundCeiling

正の無限大に向かって丸める丸めモード。

RoundDown

0 に向かって丸める丸めモード。

RoundFloor

負の無限大に向かって丸める丸めモード。

RoundHalfDown

両方のネイバーが等しい場合を除き、"最も近い近隣" に向かって丸める丸めモード。その場合は切り捨てられます。

RoundHalfEven

両方のネイバーが等しい場合を除き、"最も近い隣人" に向かって丸める丸めモード。その場合は、偶数の近隣に向かって丸める。

RoundHalfUp

両方のネイバーが等しい場合を除き、"最も近い近隣" に向かって丸める丸めモード。その場合は切り上げ。

RoundUnnecessary

要求された操作に正確な結果があることをアサートする丸めモード。そのため、丸める必要はありません。

RoundUp

0 から丸める丸めモード。

プロパティ

Class

この Objectランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
JniPeerMembers

変更できない、任意の有効桁数の符号付き 10 進数。

One

小数点以下桁数が 0 の値 1。

PeerReference

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
Ten

小数点以下桁数が 0 の値 10。

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

Zero

小数点以下桁数が 0 の値 0。

メソッド

Abs()

このBigDecimal値がBigDecimal絶対値であり、小数点以下桁数this.scale()が .

Abs(MathContext)

コンテキストの設定に BigDecimal 従って丸めで、この値が絶対値 BigDecimalである値を返します。

Add(BigDecimal)

値が BigDecimal 、小数点以下桁数max(this.scale(), augend.scale())(this + augend).

Add(BigDecimal, MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (this + augend)を返します。

ByteValue()

指定した数値の値を返します。byte

(継承元 Number)
ByteValueExact()

これをBigDecimalbyte、失われた情報をチェックする a に変換します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
CompareTo(BigDecimal)

これを BigDecimal 指定した値と比較します BigDecimal

Dispose()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
Dispose(Boolean)

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
Divide(BigDecimal)

正確な商を表すことができない場合 (終端以外の BigDecimal 10 進数の拡張があるため) ArithmeticException である値(this / divisor)、および優先する小数点以下桁数(this.scale() - divisor.scale())を返します。

Divide(BigDecimal, Int32, RoundingMode)

値が BigDecimal 、およびスケールが (this / divisor)指定されたとおりの値を返します。

Divide(BigDecimal, Int32, RoundOptions)

値が BigDecimal 、およびスケールが (this / divisor)指定されたとおりの値を返します。

Divide(BigDecimal, MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (this / divisor)を返します。

Divide(BigDecimal, RoundingMode)

値が BigDecimal 、小数点以下桁数this.scale()(this / divisor).

Divide(BigDecimal, RoundOptions)

値が BigDecimal 、小数点以下桁数this.scale()(this / divisor).

DivideAndRemainder(BigDecimal)

2 つの BigDecimal オペランドの結果の後に続く結果 divideToIntegralValue を含む 2 要素配列 remainder を返します。

DivideAndRemainder(BigDecimal, MathContext)

コンテキスト設定に従って丸めで計算された 2 つのオペランドの結果divideToIntegralValueremainder後に続く結果を含む 2 要素BigDecimal配列を返します。

DivideToIntegralValue(BigDecimal)

BigDecimal四捨五入された商(this / divisor)の整数部分を表す値を返します。

DivideToIntegralValue(BigDecimal, MathContext)

BigDecimal 整数部分 (this / divisor)である値を返します。

DoubleValue()

この BigDecimaldoubleに変換します。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
FloatValue()

この BigDecimalfloatに変換します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
IntValue()

これを BigDecimal . に変換します int

IntValueExact()

これを BigDecimalint、失われた情報のチェックに変換します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
LongValue()

この BigDecimallongに変換します。

LongValueExact()

これをBigDecimallong、失われた情報をチェックする a に変換します。

Max(BigDecimal)

これとBigDecimalvalの最大値を返します。

Min(BigDecimal)

これとBigDecimalvalの最小値を返します。

MovePointLeft(Int32)

小数点が BigDecimal 左に移動 n した位置を持つ、これと同等の値を返します。

MovePointRight(Int32)

BigDecimal小数点が右に移動nした場合と同等の値を返します。

Multiply(BigDecimal)

値が BigDecimal 、小数点以下桁数(this.scale() + multiplicand.scale())(this &times; multiplicand).

Multiply(BigDecimal, MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (this &times; multiplicand)を返します。

Negate()

値が BigDecimal 、小数点以下桁数this.scale()(-this).

Negate(MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (-this)を返します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Plus()

値が BigDecimal 、小数点以下桁数this.scale()(+this).

Plus(MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (+this)を返します。

Pow(Int32)

値が BigDecimal 、累乗が (this<sup>n</sup>)正確に計算され、有効桁数が無制限である値を返します。

Pow(Int32, MathContext)

(this<sup>n</sup>)BigDecimal .

Precision()

このBigDecimal精度返します。

Remainder(BigDecimal)

(this % divisor)BigDecimal .

Remainder(BigDecimal, MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (this % divisor)を返します。

Round(MathContext)

設定に BigDecimal 従って丸められた値を MathContext 返します。

Scale()

このBigDecimalスケール返します。

ScaleByPowerOfTen(Int32)

数値が (this * 10<sup>n</sup>) の BigDecimal を返します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetScale(Int32)

BigDecimalスケールが指定された値であり、その値がこの BigDecimal's' と数値で等しいユーザーを返します。

SetScale(Int32, RoundingMode)

BigDecimalスケールが指定された値であり、そのスケールされていない値がこのスケーリングされていない値を 10 の適切な累乗で乗算または除算BigDecimalすることによって決定され、その全体的な値を維持する値を返します。

SetScale(Int32, RoundOptions)

BigDecimalスケールが指定された値であり、そのスケールされていない値がこのスケーリングされていない値を 10 の適切な累乗で乗算または除算BigDecimalすることによって決定され、その全体的な値を維持する値を返します。

ShortValue()

指定した数値の値を返します。short

(継承元 Number)
ShortValueExact()

これをBigDecimalshort、失われた情報をチェックする a に変換します。

Signum()

この BigDecimalのサインム関数を返します。

Sqrt(MathContext)

コンテキスト設定に従って丸めを使用して平方 this 根の近似値を返します。

StripTrailingZeros()

BigDecimalこの値と数値が等しいが、後続の 0 が表現から削除された値を返します。

Subtract(BigDecimal)

値が BigDecimal 、小数点以下桁数max(this.scale(), subtrahend.scale())(this - subtrahend).

Subtract(BigDecimal, MathContext)

コンテキスト設定に BigDecimal 従って丸めのある値 (this - subtrahend)を返します。

ToArray<T>()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
ToBigInteger()

この BigDecimalBigIntegerに変換します。

ToBigIntegerExact()

これをBigDecimalBigInteger、失われた情報をチェックする a に変換します。

ToEngineeringString()

指数が必要な場合は、エンジニアリング表記を使用して、この BigDecimal文字列形式を返します。

ToPlainString()

指数フィールドを使用せずに、この BigDecimal 文字列形式を返します。

ToString()

オブジェクトの文字列表現を返します。

(継承元 Object)
Ulp()

ulp のサイズ(最後の位置の単位)を返します BigDecimal

UnregisterFromRuntime()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
UnscaledValue()

このBigDecimal値のBigIntegerスケーリングされていない値返します。

ValueOf(Double)

メソッドによって提供される'の正規文字列表現をdouble使用して、a doubleBigDecimalを a にDouble#toString(double)変換します。

ValueOf(Int64)

0 の小数点以下桁数で long 値を a BigDecimal に変換します。

ValueOf(Int64, Int32)

longスケーリングされていない値とスケールをint変換しますBigDecimal

Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IComparable.CompareTo(Object)

変更できない、任意の有効桁数の符号付き 10 進数。

IJavaPeerable.Disposed()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.Finalized()

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

変更できない、任意の有効桁数の符号付き 10 進数。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

変更できない、任意の有効桁数の符号付き 10 進数。

GetJniTypeName(IJavaPeerable)

変更できない、任意の有効桁数の符号付き 10 進数。

適用対象