Foundation 1.1.2

java.math
クラス BigDecimal

java.lang.Object
  上位を拡張 java.lang.Number
      上位を拡張 java.math.BigDecimal
すべての実装されたインタフェース:
Serializable, Comparable

public class BigDecimal
extends Number
implements Comparable

変更が不可能な、任意精度の符号付き小数です。BigDecimal は、任意精度の「スケールなしの整数値」と、小数点以下の桁数を表す負ではない 32 ビット整数の「スケール」で構成されます。BigDecimal で表される数値は (unscaledValue/10scale) です。BigDecimal クラスは、基本算術、スケール操作、比較、ハッシング、および書式変換の演算を提供します。 

BigDecimal クラスでは、小数部を破棄できる演算 (divide(BigDecimal, int)divide(BigDecimal, int, int)、および setScale(int, int)) に対する「丸め動作」をユーザーは明示的に指定しなければならず、ユーザーが丸め動作を完全に制御することになります。8 種類の「丸めモード」が用意されています。  

BigDecimal のスケール操作には、スケーリング/丸め演算と小数点移動演算の 2 種類があります。スケーリング/丸め演算 (setScale) は、値がオペランドの値とほぼ (またはちょうど) 等しく、指定されたスケール値を持つ BigDecimal を返します。この演算では、値に対する影響を最小限にとどめながら、数値の精度を増減させます。小数点移動演算 (movePointLeft(int)movePointRight(int)) は、指定した方向に指定した桁だけ小数点を移動することにより作成される BigDecimal を返します。この演算では、数値の精度は影響を受けず、数値が変化します。 

説明をわかりやすく簡潔にするために、BigDecimal メソッドの説明では全体を通して擬似コードを使用します。擬似コード式 (i + j) は、「値が BigDecimal i の値と BigDecimal j の値の和である BigDecimal」を示します。擬似コード式 (i == j) は、「BigDecimal i が BigDecimal j と同じ値を表す場合にだけ true であること」を示します。ほかの擬似コード式も同じように解釈されます。 

注:BigDecimal を SortedMap のキーまたは SortedSet の要素として使用する場合は、注意してください。BigDecimal の「自然順序付け」が「equals と矛盾する」からです。詳細は、ComparableSortedMap、または SortedSet を参照してください。 

このクラスのメソッドおよびコンストラクタはすべて、入力パラメータに対して null オブジェクト参照が渡されると NullPointerException をスローします。

関連項目:
BigInteger, SortedMap, SortedSet, 直列化された形式

フィールドの概要
static int ROUND_CEILING
          正の無限大に近づくように丸めるモードです。
static int ROUND_DOWN
          0 に近づくように丸めるモードです。
static int ROUND_FLOOR
          負の無限大に近づくように丸めるモードです。
static int ROUND_HALF_DOWN
          「もっとも近い数字」に丸めるモードです。
static int ROUND_HALF_EVEN
          「もっとも近い数字」 に丸める丸めモードです。
static int ROUND_HALF_UP
          「もっとも近い数字」に丸めるモードです。
static int ROUND_UNNECESSARY
          要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。
static int ROUND_UP
          0 から離れるように丸めるモードです。
 
コンストラクタの概要
BigDecimal(BigInteger val)
          BigInteger を BigDecimal に変換します。
BigDecimal(BigInteger unscaledVal, int scale)
          BigInteger のスケールなしの値と int のスケールを BigDecimal に変換します。
BigDecimal(double val)
          double を BigDecimal に変換します。
BigDecimal(String val)
          BigDecimal の文字列表現を BigDecimal に変換します。
 
メソッドの概要
 BigDecimal abs()
          値がこの BigDecimal の絶対値でスケールが this.scale() である BigDecimal を返します。
 BigDecimal add(BigDecimal val)
          値が (this + val) でスケールが max(this.scale(), val.scale()) である BigDecimal を返します。
 int compareTo(BigDecimal val)
          この BigDecimal と指定された BigDecimal を比較します。
 int compareTo(Object o)
          この BigDecimal と指定された Object を比較します。
 BigDecimal divide(BigDecimal val, int roundingMode)
          値が (this / val) でスケールが this.scale() である BigDecimal を返します。
 BigDecimal divide(BigDecimal val, int scale, int roundingMode)
          値が (this / val) で、スケールが指定されたものである BigDecimal を返します。
 double doubleValue()
          この BigDecimal を double に変換します。
 boolean equals(Object x)
          この BigDecimal と指定された Object が等しいかどうかを比較します。
 float floatValue()
          この BigDecimal を float に変換します。
 int hashCode()
          この BigDecimal のハッシュコードを返します。
 int intValue()
          この BigDecimal を int に変換します。
 long longValue()
          この BigDecimal を long に変換します。
 BigDecimal max(BigDecimal val)
          この BigDecimal と val の最大値を返します。
 BigDecimal min(BigDecimal val)
          この BigDecimal と val の最小値を返します。
 BigDecimal movePointLeft(int n)
          この BigDecimal の小数点を n 桁左へ移動したものに等しい BigDecimal を返します。
 BigDecimal movePointRight(int n)
          指定された桁数だけ小数点を右へ移動します。
 BigDecimal multiply(BigDecimal val)
          値が (this * val) でスケールが (this.scale() + val.scale()) である BigDecimal を返します。
 BigDecimal negate()
          値が (-this) でスケールが this.scale() である BigDecimal を返します。
 int scale()
          この BigDecimal の「スケール」を返します。
 BigDecimal setScale(int scale)
          スケールが指定された値であり、値がこの BigDecimal と同じ数値である、BigDecimalを返します。
 BigDecimal setScale(int scale, int roundingMode)
          指定したスケールを持ち、スケールなしの値として、元の BigDecimal のスケールなしの値を、全体の値を変えないように適当な 10 の累乗で乗じた (あるいは割った) 値を持つ BigDecimal を返します。
 int signum()
          この BigDecimal の符号要素を返します。
 BigDecimal subtract(BigDecimal val)
          値が (this - val) でスケールが max(this.scale(), val.scale()) である BigDecimal を返します。
 BigInteger toBigInteger()
          この BigDecimal を BigInteger に変換します。
 String toString()
          この BigDecimal の文字列表現を返します。
 BigInteger unscaledValue()
          値がこの BigDecimal の「スケールなしの値」である BigInteger を返します。
static BigDecimal valueOf(long val)
          long 値をスケールが 0 の BigDecimal に変換します。
static BigDecimal valueOf(long unscaledVal, int scale)
          long のスケールなしの値と int のスケールを BigDecimal に変換します。
 
クラス java.lang.Number から継承されたメソッド
byteValue, shortValue
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

ROUND_UP

public static final int ROUND_UP
0 から離れるように丸めるモードです。破棄される 0 以外の小数部に先行する桁を常に増やします。この丸めモードは、計算された値の絶対値を減らしません。

関連項目:
定数フィールド値

ROUND_DOWN

public static final int ROUND_DOWN
0 に近づくように丸めるモードです。破棄される小数部に先行する桁を増分しません (つまり切り詰め)。この丸めモードは、計算された値の絶対値を増やしません。

関連項目:
定数フィールド値

ROUND_CEILING

public static final int ROUND_CEILING
正の無限大に近づくように丸めるモードです。BigDecimal が正の場合は ROUND_UP のように動作し、負の場合は ROUND_DOWN のように動作します。この丸めモードは、計算された値を減らしません。

関連項目:
定数フィールド値

ROUND_FLOOR

public static final int ROUND_FLOOR
負の無限大に近づくように丸めるモードです。BigDecimal が正の場合は ROUND_DOWN のように動作し、負の場合は ROUND_UP のように動作します。この丸めモードは、計算された値を増やしません。

関連項目:
定数フィールド値

ROUND_HALF_UP

public static final int ROUND_HALF_UP
「もっとも近い数字」に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り上げます。破棄される小数部が 0.5 以上の場合は ROUND_UP のように動作し、それ以外の場合は ROUND_DOWN のように動作します。これは我々の大半が小学校で習った丸めモードのことです。

関連項目:
定数フィールド値

ROUND_HALF_DOWN

public static final int ROUND_HALF_DOWN
「もっとも近い数字」に丸めるモードです。ただし、両隣りの数字が等距離の場合は切り捨てます。破棄される小数部が 0.5 を超える場合は ROUND_UP のように動作し、それ以外の場合は ROUND_DOWN のように動作します。

関連項目:
定数フィールド値

ROUND_HALF_EVEN

public static final int ROUND_HALF_EVEN
「もっとも近い数字」 に丸める丸めモードです。ただし、両隣りの数字が等距離の場合は偶数側に丸めます。破棄する小数部の左辺の桁が奇数の場合は ROUND_HALF_UP のように動作し、偶数の場合は ROUND_HALF_DOWN のように動作します。この丸めモードは、連続する計算で繰り返し適用される場合に累積エラーを最小限にします。

関連項目:
定数フィールド値

ROUND_UNNECESSARY

public static final int ROUND_UNNECESSARY
要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。この丸めモードが結果が正確でない演算で指定される場合は、ArithmeticException がスローされます。

関連項目:
定数フィールド値
コンストラクタの詳細

BigDecimal

public BigDecimal(String val)
BigDecimal の文字列表現を BigDecimal に変換します。文字列表現は、任意の符号「+」(「\u002B」) または「-」(「\u002D」) と、それに続く 0 桁以上の 10 進数字 (「整数部」) の列で構成され、任意で小数部または指数が付随します。

小数部は、小数点と 0 桁以上の 10 進数字で構成されます。この文字列では、整数部または小数部が少なくとも 1 桁は必要です。符号、整数部、小数部からなる数字は「有効数字」と呼ばれます。

指数は、「e」(「\u0075」) または「E」(「\u0045」) という文字に、1 つ以上の 10 進数字が続くかたちで構成されます。指数値は -Integer.MAX_VALUE (Integer.MIN_VALUE+1) から Integer.MAX_VALUE の範囲の値である必要があります。

つまり、このコンストラクタが受け入れる文字列は次の文法によって記述されます。

BigDecimalString:
Signopt Significand Exponentopt  

Sign:
+
-  

Significand:
IntegerPart .FractionPartopt
. FractionPart
IntegerPart  

IntegerPart:
Digits  

FractionPart:
Digits  

Exponent:
ExponentIndicator SignedInteger  

ExponentIndicator:
e
E  

SignedInteger:
Signopt Digits  

Digits:
数字
Digits Digit  

Digit:
Character.isDigit(char)true を返す任意の文字 (0、1、2 など)

返される BigDecimal のスケールは、小数部の桁数 (文字列に小数部がない場合は 0) になります。ただし、指数部の指定があれば補正されます。文字列に指数がある場合、スケールから指数が減算されます。その結果スケールが負となる場合、返される BigDecimal のスケールは 0 となり、スケールなしの数値に適切な 10 の累乗が乗算されます。これにより、どの場合にも結果の BigDecimal は significand × 10exponent と等しくなります。将来、この仕様が負のスケールを許容するように修正される場合は、スケールを 0 にしてスケールなしの値を調整するという最後の手順はなくなるでしょう。

文字から数字へのマッピングは Character.digit(char, int) で提供され、基数 10 への変換に設定されます。String には、不適切な文字 (空白など) を含めることはできません。

注:float および double の NaN、および ±Infinity 以外の値では、このコンストラクタは Float.toString(float) および Double.toString(double)で返される値と互換性があります。この方法では、BigDecimal(double) コンストラクタで予測ができないことによる影響を受けないため、float または double を BigDecimal に変換する望ましい方法です。

注:Release 1.3 以降では、先頭のプラス記号および末尾の指数を任意で付けることができるようになりました。

パラメータ:
val - BigDecimal の文字列表現
例外:
NumberFormatException - val が BigDecimal の表現として無効である場合

BigDecimal

public BigDecimal(double val)
double を BigDecimal に変換します。BigDecimal のスケールは、(10scale * val) が整数となるような最小の値です。 

注:このコンストラクタの結果は予想外である可能性があります。new BigDecimal(.1) は正確に .1 と等しいと思うかもしれませんが、実際には .1000000000000000055511151231257827021181583404541015625 と等しくなります。これは .1 を double (または有限長 2 進小数) として正確に表現できないためです。したがって、表記に関わらず、コンストラクタに渡される long 値は正確に .1 と等しいわけではありません。  

一方、(String) コンストラクタは完全に予測可能です。new BigDecimal(".1") は、「正確に」 .1 と等しくなります。そのため、通常は、このコンストラクタの代わりに (String) コンストラクタを使用することをお勧めします。

パラメータ:
val - BigDecimal に変換する double
例外:
NumberFormatException - val が 無限か NaN である場合は val

BigDecimal

public BigDecimal(BigInteger val)
BigInteger を BigDecimal に変換します。BigDecimal のスケールは 0 です。

パラメータ:
val - BigDecimal に変換する BigInteger 値

BigDecimal

public BigDecimal(BigInteger unscaledVal,
                  int scale)
BigInteger のスケールなしの値と int のスケールを BigDecimal に変換します。BigDecimal の値は (unscaledVal/10scale) です。

パラメータ:
unscaledVal - BigDecimal のスケールなしの値
scale - BigDecimal のスケール
例外:
NumberFormatException - スケールが負の場合
メソッドの詳細

valueOf

public static BigDecimal valueOf(long unscaledVal,
                                 int scale)
long のスケールなしの値と int のスケールを BigDecimal に変換します。この「static ファクトリメソッド」は、よく使われる BigDecimal 値の再利用を可能にするため、(long, int) コンストラクタよりも優先して提供されます。

パラメータ:
unscaledVal - BigDecimal のスケールなしの値
scale - BigDecimal のスケール
戻り値:
値が (unscaledVal/10scale) である BigDecimal

valueOf

public static BigDecimal valueOf(long val)
long 値をスケールが 0 の BigDecimal に変換します。この「static ファクトリメソッド」は、よく使われる BigDecimal 値の再利用を可能にするため、(long) コンストラクタよりも優先して提供されます。

パラメータ:
val - BigDecimal の値
戻り値:
値が val である BigDecimal

add

public BigDecimal add(BigDecimal val)
値が (this + val) でスケールが max(this.scale(), val.scale()) である BigDecimal を返します。

パラメータ:
val - この BigDecimal に加算する値
戻り値:
this + val

subtract

public BigDecimal subtract(BigDecimal val)
値が (this - val) でスケールが max(this.scale(), val.scale()) である BigDecimal を返します。

パラメータ:
val - この BigDecimal から減算する値
戻り値:
this - val

multiply

public BigDecimal multiply(BigDecimal val)
値が (this * val) でスケールが (this.scale() + val.scale()) である BigDecimal を返します。

パラメータ:
val - この BigDecimal で乗算する値
戻り値:
this * val

divide

public BigDecimal divide(BigDecimal val,
                         int scale,
                         int roundingMode)
値が (this / val) で、スケールが指定されたものである BigDecimal を返します。丸めを行い、指定したスケールで結果を生成する必要がある場合は、指定した丸めモードが適用されます。

パラメータ:
val - この BigDecimal を除算する値
scale - 返される BigDecimal の商のスケール
roundingMode - 適用する丸めモード
戻り値:
this / val
例外:
ArithmeticException - val が 0 であるか、scale が負である場合。あるいは roundingMode==ROUND_UNNECESSARY で、指定したスケールが除算の結果を正確に表すには十分でない場合
IllegalArgumentException - roundingMode が有効な丸めモードを表さない場合
関連項目:
ROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARY

divide

public BigDecimal divide(BigDecimal val,
                         int roundingMode)
値が (this / val) でスケールが this.scale() である BigDecimal を返します。丸めを行い、特定のスケールで結果を生成する必要がある場合は、指定された丸めモードが適用されます。

パラメータ:
val - この BigDecimal を除算する値
roundingMode - 適用する丸めモード
戻り値:
this / val
例外:
ArithmeticException - val==0 である場合。あるいは roundingMode==ROUND_UNNECESSARY で、this.scale() が除算の結果を正確に表すには十分でない場合
IllegalArgumentException - roundingMode が有効な丸めモードを表さない場合
関連項目:
ROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARY

abs

public BigDecimal abs()
値がこの BigDecimal の絶対値でスケールが this.scale() である BigDecimal を返します。

戻り値:
abs(this)

negate

public BigDecimal negate()
値が (-this) でスケールが this.scale() である BigDecimal を返します。

戻り値:
-this

signum

public int signum()
この BigDecimal の符号要素を返します。

戻り値:
この BigDecimal が負の場合は -1、ゼロの場合は 0、正の場合は 1

scale

public int scale()
この BigDecimal の「スケール」を返します。スケールは小数点以下の桁数です。

戻り値:
この BigDecimal のスケール

unscaledValue

public BigInteger unscaledValue()
値がこの BigDecimal の「スケールなしの値」である BigInteger を返します。(this * 10this.scale()) を計算します。

戻り値:
この BigDecimal のスケールなしの値
導入されたバージョン:
1.2

setScale

public BigDecimal setScale(int scale,
                           int roundingMode)
指定したスケールを持ち、スケールなしの値として、元の BigDecimal のスケールなしの値を、全体の値を変えないように適当な 10 の累乗で乗じた (あるいは割った) 値を持つ BigDecimal を返します。スケールが演算で減らされる場合、スケールなしの値は (乗算ではなく) 除算する必要があり、値が変わる可能性があります。この場合、指定した丸めモードが除算に適用されます。 

BigDecimal オブジェクトは不変であるため、setX メソッドでフィールド X を変更する通常の規則とは異なり、このメソッドを呼び出しても元のオブジェクトは変更されないことに注意してください。代わりに、setScale は適切なスケールを持つオブジェクトを返します。返されたオブジェクトは、新しく割り当てられる場合とそうでない場合があります。

パラメータ:
scale - 返される BigDecimal の値のスケール
roundingMode - 適用する丸めモード
戻り値:
スケールが指定された値であり、かつスケールなしの値が、この BigDecimal のスケールなしの値と、総体値を維持できる適当な 10 の累乗の積または商により決定される BigDecimal
例外:
ArithmeticException - scale が負である場合。あるいは roundingMode==ROUND_UNNECESSARY で、指定したスケール演算で丸めが必要な場合
IllegalArgumentException - roundingMode が有効な丸めモードを表さない場合
関連項目:
ROUND_UP, ROUND_DOWN, ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_HALF_EVEN, ROUND_UNNECESSARY

setScale

public BigDecimal setScale(int scale)
スケールが指定された値であり、値がこの BigDecimal と同じ数値である、BigDecimalを返します。これが不可能な場合、ArithmeticException をスローします。通常、この呼び出しはスケールの拡張に使用され、その場合には指定されたスケールと正しい値の BigDecimal の存在が保証されます。精度を失うことなく再スケーリングを行うのに十分な 0 が BigDecimal の小数部 (その整数値における 10 の因数) の最後にあることを呼び出し側が認識している場合、この呼び出しはスケールの縮小にも使用できます。 

このメソッドは setScale の 2 つの引数を使うバージョンと同じ結果を返しますが、呼び出し側は、丸めモードを不必要に指定する手間を省くことができます。 

BigDecimal オブジェクトは不変であるため、setX メソッドでフィールド X を変更する通常の規則とは異なり、このメソッドを呼び出しても元のオブジェクトは変更されないことに注意してください。代わりに、setScale は適切なスケールを持つオブジェクトを返します。返されたオブジェクトは、新しく割り当てられる場合とそうでない場合があります。

パラメータ:
scale - 返される BigDecimal の値のスケール
戻り値:
スケールが指定された値であり、かつスケールなしの値が、この BigDecimal のスケールなしの値と、総体値を維持できる適当な 10 の累乗の積または商により決定される BigDecimal
例外:
ArithmeticException - scale が負である場合。あるいは指定したスケール演算で丸めが必要な場合
関連項目:
setScale(int, int)

movePointLeft

public BigDecimal movePointLeft(int n)
この BigDecimal の小数点を n 桁左へ移動したものに等しい BigDecimal を返します。n が負でない場合は、スケールに n を単に加算します。n が負の場合は、movePointRight(-n) に等しくなります。この呼び出しで返される BigDecimal の値は (this * 10-n)、スケールは max(this.scale()+n, 0) です。

パラメータ:
n - 小数点を左へ移動する桁数
戻り値:
この BigDecimal の小数点を n 桁左へ移動したものに等しい BigDecimal

movePointRight

public BigDecimal movePointRight(int n)
指定された桁数だけ小数点を右へ移動します。この BigDecimal のスケールが n 以上の場合は、単にスケールから n を引きます。それ以外の場合は、スケールを 0 に設定し、その整数値に 10(n - this.scale) を掛けます。n が負の場合は、movePointLeft(-n) に等しくなります。この呼び出しで返される BigDecimal の値は (this * 10n)、スケールは max(this.scale()-n, 0) です。

パラメータ:
n - 小数点を右へ移動する桁数
戻り値:
この BigDecimal の小数点を n 桁右へ移動したものに等しい BigDecimal

compareTo

public int compareTo(BigDecimal val)
この BigDecimal と指定された BigDecimal を比較します。このメソッドでは、値は等しいがスケールが異なる 2 つの BigDecimal (たとえば、2.0 と 2.00) が等しいとみなされます。このメソッドは、6 つの boolean 型の比較演算子 (<、==、>、>=、!=、<=) のそれぞれに対する個々のメソッドの代わりに提供されます。これらの比較を行うには (x.compareTo(y) <op> 0) という組み合わせをお勧めします。この場合、<op> には 6 つの比較演算子のうちの 1 つが入ります。

パラメータ:
val - この BigDecimal と比較する BigDecimal
戻り値:
この BigDecimal が val よりも小さい場合は -1、等しい場合は 0、大きい場合は 1

compareTo

public int compareTo(Object o)
この BigDecimal と指定された Object を比較します。Object が BigDecimal の場合、このメソッドは compareTo と同じように動作します。そうでない場合は ClassCastException をスローします。これは、BigDecimal の比較は BigDecimal 同士でしか行えないためです。

定義:
インタフェース Comparable 内の compareTo
パラメータ:
o - この BigDecimal と比較する Object
戻り値:
この BigDecimal の値が o より小さい場合は負の数、等しい場合は 0、大きい場合は正の数。o は BigDecimal でなければならない
例外:
ClassCastException - o が BigDecimal ではない場合
導入されたバージョン:
1.2
関連項目:
compareTo(java.math.BigDecimal), Comparable

equals

public boolean equals(Object x)
この BigDecimal と指定された Object が等しいかどうかを比較します。compareTo と違い、このメソッドは、2 つの BigDecimal が値もスケールも同じである場合にだけ等しいとみなします。したがって、このメソッドでは 2.0 と 2.00 は等しくありません。

オーバーライド:
クラス Object 内の equals
パラメータ:
x - この BigDecimal と比較する Object
戻り値:
指定した Object がこの BigDecimal と値もスケールも等しい BigDecimal である場合にのみ true
関連項目:
compareTo(java.math.BigDecimal)

min

public BigDecimal min(BigDecimal val)
この BigDecimal と val の最小値を返します。

パラメータ:
val - 最小値の計算に使用する値
戻り値:
この BigDecimal と val のうちで小さい方の値を持つ BigDecimal。compareTo メソッドで定義されている比較方法で値が等しい場合は、どちらかが返される
関連項目:
compareTo(java.math.BigDecimal)

max

public BigDecimal max(BigDecimal val)
この BigDecimal と val の最大値を返します。

パラメータ:
val - 最大値の計算に使用する値
戻り値:
この BigDecimal と val のうちで大きい方の値を持つ BigDecimal。compareTo メソッドで定義されている比較方法で値が等しい場合は、どちらかが返される
関連項目:
compareTo(java.math.BigDecimal)

hashCode

public int hashCode()
この BigDecimal のハッシュコードを返します。値が等しいがスケールが異なる 2 つの BigDecimal (たとえば、2.0 と 2.00) は、通常はハッシュコードが異なります。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この BigDecimal のハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
この BigDecimal の文字列表現を返します。Character.forDigit(int, int) による数字から文字へのマッピングが使用されます。先頭のマイナス記号は符号を示すために使用され、小数点以下の桁数はスケールを示すために使用されます。この表現は (String) コンストラクタと互換性があります。

オーバーライド:
クラス Object 内の toString
戻り値:
この BigDecimal の文字列表現
関連項目:
Character.forDigit(int, int), BigDecimal(java.lang.String)

toBigInteger

public BigInteger toBigInteger()
この BigDecimal を BigInteger に変換します。この変換は、『Java 言語仕様』で定義された double から long への「ナロープリミティブ変換」と同様です。この BigDecimal の小数部はすべて破棄されます。この変換により、BigDecimal 値の精度に関する情報が失われる可能性があります。

戻り値:
BigInteger に変換されたこの BigDecimal

intValue

public int intValue()
この BigDecimal を int に変換します。この変換は、『Java 言語仕様』で定義された double から short への「ナロープリミティブ変換」と同様です。この BigDecimal の小数部はすべて破棄されます。結果の「BigInteger」が長すぎて int 内に収まらない場合、下位 32 ビットだけが返されます。この変換により、この BigDecimal 値の絶対値と精度全体に関する情報が失われ、逆の符号で返される可能性があります。

定義:
クラス Number 内の intValue
戻り値:
int に変換されたこの BigDecimal

longValue

public long longValue()
この BigDecimal を long に変換します。この変換は、『Java 言語仕様』で定義された double から short への「ナロープリミティブ変換」と同様です。この BigDecimal の小数部はすべて破棄されます。結果の「BigInteger」が長すぎて long 内に収まらない場合、下位 64 ビットだけが返されます。この変換により、この BigDecimal 値の絶対値と精度全体に関する情報が失われ、逆の符号で返される可能性があります。

定義:
クラス Number 内の longValue
戻り値:
long に変換されたこの BigDecimal

floatValue

public float floatValue()
この BigDecimal を float に変換します。この変換は、『Java 言語仕様』で定義された double から float への「ナロープリミティブ変換」と同様です。この BigDecimal の絶対値が大きすぎて float として表現できない場合、適宜 Float.NEGATIVE_INFINITY または Float.POSITIVE_INFINITY に変換されます。戻り値が有限である場合も、この変換により、BigDecimal 値の精度に関する情報が失われる可能性があります。

定義:
クラス Number 内の floatValue
戻り値:
float に変換されたこの BigDecimal

doubleValue

public double doubleValue()
この BigDecimal を double に変換します。この変換は、『Java 言語仕様』で定義された double から float への「ナロープリミティブ変換」と同様です。この BigDecimal の絶対値が大きすぎて double として表現できない場合、適宜 Double.NEGATIVE_INFINITY または Double.POSITIVE_INFINITY に変換されます。戻り値が有限である場合も、この変換により、BigDecimal 値の精度に関する情報が失われる可能性があります。

定義:
クラス Number 内の doubleValue
戻り値:
double に変換されたこの BigDecimal

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。