|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.lang.Number | +--java.math.BigDecimal
変更が不可能な、任意精度の符号付き 10 進数です。BigDecimal は、任意精度の「スケールなしの整数値」と、小数点以下の桁数を表す負でない 32 ビット整数「スケール」で構成されます。BigDecimal で表される数値は (unscaledValue/10scale) です。BigDecimal は、基本算術、スケール操作、比較、ハッシング、および書式変換の演算を提供します。
BigDecimal クラスは、小数部を破棄できる演算 (divide と setScale) に対してユーザに明示的に丸め動作を指定させて、ユーザが丸め動作を完全に制御できるようにします。このために、8 つの「丸めモード」が用意されています。
BigDecimal のスケール操作には、スケーリング/丸め演算と小数点移動演算の 2 種類があります。スケーリング/丸め演算 (SetScale) は、値がオペランドの値とほぼ (またはちょうど) 等しいがスケールは指定された値である BigDecimal を返します。この演算では、値に対するわずかな影響で数値の精度が上下します。小数点移動演算 (movePointLeft と movePointRight) は、指定した方向に指定した桁だけ小数点を移動することによりオペランドから作成される BigDecimal を返します。この演算は、精度に影響を与えることなく数値の値を変更します。
説明をわかりやすく簡潔にするために、BigDecimal メソッドの説明では全体を通して擬似コードを使用します。擬似コード式 (i + j) は、値が BigDecimal i の値と BigDecimal j の値の和である BigDecimal を示します。擬似コード式 (i == j) は、BigDecimal i が BigDecimal j と同じ値を表す場合にだけ真であることを示します。ほかの擬似コード式も同じように解釈されます。
注: BigDecimal を SortedMap のキーまたは SortedSet の要素として使用する場合は、注意してください。これは、BigDecimal の自然順序付けが equals と矛盾するからです。詳細は、Comparable、SortedMap または SortedSet を参照してください。
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 の String 表現を 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)
小数点を 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 の String 表現を返します。 |
BigInteger |
unscaledValue()
値がこの BigDecimal の「スケールなしの値」である BigDecimal を返します ((this * 10this.scale()) を計算する)。 |
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 |
フィールドの詳細 |
public static final int ROUND_UP
public static final int ROUND_DOWN
public static final int ROUND_CEILING
public static final int ROUND_FLOOR
public static final int ROUND_HALF_UP
public static final int ROUND_HALF_DOWN
public static final int ROUND_HALF_EVEN
public static final int ROUND_UNNECESSARY
コンストラクタの詳細 |
public BigDecimal(String val)
val
- BigDecimal の String 表現Character.digit(char, int)
public BigDecimal(double val)
注: このコンストラクタの結果は予想外である可能性があります。new BigDecimal(.1) は正確に .1 と等しいと思われるかもしれませんが、実際には .1000000000000000055511151231257827021181583404541015625 となります。これは、.1 を double (または有限長 2 進小数) として正確に表現できないためです。したがって、コンストラクタに渡されている long 値は正確に .1 と等しいわけではありません。
一方、String を引数とするコンストラクタは予測可能です。new BigDecimal(".1") は、「正確に」 .1 と等しくなります。そのため、通常は、double を引数とするコンストラクタの代わりに String を引数とするコンストラクタを使用することをお勧めします。
val
- BigDecimal に変換する double 値public BigDecimal(BigInteger val)
val
- BigDecimal に変換する BigInteger 値public BigDecimal(BigInteger unscaledVal, int scale)
unscaledVal
- BigDecimal のスケールなしの値scale
- BigDecimal のスケールメソッドの詳細 |
public static BigDecimal valueOf(long unscaledVal, int scale)
unscaledVal
- BigDecimal のスケールなしの値scale
- BigDecimal のスケールpublic static BigDecimal valueOf(long val)
val
- BigDecimal の値public BigDecimal add(BigDecimal val)
val
- この BigDecimal に加算する値public BigDecimal subtract(BigDecimal val)
val
- この BigDecimal から減算する値public BigDecimal multiply(BigDecimal val)
val
- この BigDecimal で乗算する値public BigDecimal divide(BigDecimal val, int scale, int roundingMode)
val
- この BigDecimal を除算する値scale
- 返される BigDecimal の商のスケールroundingMode
- 適用する丸めモードROUND_UP
,
ROUND_DOWN
,
ROUND_CEILING
,
ROUND_FLOOR
,
ROUND_HALF_UP
,
ROUND_HALF_DOWN
,
ROUND_HALF_EVEN
,
ROUND_UNNECESSARY
public BigDecimal divide(BigDecimal val, int roundingMode)
val
- この BigDecimal を除算する値roundingMode
- 適用する丸めモードROUND_UP
,
ROUND_DOWN
,
ROUND_CEILING
,
ROUND_FLOOR
,
ROUND_HALF_UP
,
ROUND_HALF_DOWN
,
ROUND_HALF_EVEN
,
ROUND_UNNECESSARY
public BigDecimal abs()
public BigDecimal negate()
public int signum()
public int scale()
public BigInteger unscaledValue()
public BigDecimal setScale(int scale, int roundingMode)
scale
- 返される BigDecimal 値のスケールROUND_UP
,
ROUND_DOWN
,
ROUND_CEILING
,
ROUND_FLOOR
,
ROUND_HALF_UP
,
ROUND_HALF_DOWN
,
ROUND_HALF_EVEN
,
ROUND_UNNECESSARY
public BigDecimal setScale(int scale)
このメソッドは setScale の 2 つの引数を使うバージョンと同じ結果を返しますが、丸めを指定する必要のない場合に、呼び出し側は指定する手間を省くことができます。
scale
- 返される BigDecimal 値のスケールsetScale(int, int)
public BigDecimal movePointLeft(int n)
n
- 小数点を左へ移動する桁数public BigDecimal movePointRight(int n)
n
- 小数点を右へ移動する桁数public int compareTo(BigDecimal val)
val
- この BigDecimal と比較する BigDecimalpublic int compareTo(Object o)
o
- この BigDecimal と比較する ObjectcompareTo(java.math.BigDecimal)
,
Comparable
public boolean equals(Object x)
o
- この BigDecimal と比較する ObjectcompareTo(java.math.BigDecimal)
public BigDecimal min(BigDecimal val)
val
- 最小値を計算する値compareTo(java.math.BigDecimal)
public BigDecimal max(BigDecimal val)
val
- 最大値を計算する値compareTo(java.math.BigDecimal)
public int hashCode()
public String toString()
Character.forDigit(int, int)
,
BigDecimal(java.lang.String)
public BigInteger toBigInteger()
public int intValue()
public long longValue()
public float floatValue()
public double doubleValue()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |