java.math.BigDecimal
Class which represents immutable arbritary precision decimal numbers. Each
BigDecimal instance is represented with a unscaled arbitrary
precision mantissa (the unscaled value) and a scale. The value of the
BigDecimal is unscaledValue * 10^{-scale}.
Summary
Constants
| |
|
|
Value |
|
| BigDecimal |
ONE |
The constant one as a BigDecimal. |
|
|
| int |
ROUND_CEILING |
Rounding mode to round towards positive infinity. |
2 |
0x00000002 |
| int |
ROUND_DOWN |
Rounding mode where the values are rounded towards zero. |
1 |
0x00000001 |
| int |
ROUND_FLOOR |
Rounding mode to round towards negative infinity. |
3 |
0x00000003 |
| int |
ROUND_HALF_DOWN |
Rounding mode where values are rounded towards the nearest neighbour. |
5 |
0x00000005 |
| int |
ROUND_HALF_EVEN |
Rounding mode where values are rounded towards the nearest neighbour. |
6 |
0x00000006 |
| int |
ROUND_HALF_UP |
Rounding mode where values are rounded towards the nearest neighbour. |
4 |
0x00000004 |
| int |
ROUND_UNNECESSARY |
Rounding mode where the rounding operations throws an ArithmeticException
for the case that rounding is necessary, i.e. |
7 |
0x00000007 |
| int |
ROUND_UP |
Rounding mode where positive values are rounded towards positive infinity
and negative values towards negative infinity. |
0 |
0x00000000 |
| BigDecimal |
TEN |
The constant ten as a BigDecimal. |
|
|
| BigDecimal |
ZERO |
The constant zero as a BigDecimal. |
|
|
Public Constructors
| |
|
|
|
|
BigDecimal(char[] in, int offset, int len) |
| |
|
|
|
|
BigDecimal(char[] in, int offset, int len, MathContext mc) |
| |
|
|
|
|
BigDecimal(char[] in) |
| |
|
|
|
|
BigDecimal(char[] in, MathContext mc) |
| |
|
|
|
|
BigDecimal(String val) |
| |
|
|
|
|
BigDecimal(String val, MathContext mc) |
| |
|
|
|
|
BigDecimal(double val) |
| |
|
|
|
|
BigDecimal(double val, MathContext mc) |
| |
|
|
|
|
BigDecimal(BigInteger val) |
| |
|
|
|
|
BigDecimal(BigInteger val, MathContext mc) |
| |
|
|
|
|
BigDecimal(BigInteger unscaledVal, int scale) |
| |
|
|
|
|
BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) |
| |
|
|
|
|
BigDecimal(int val) |
| |
|
|
|
|
BigDecimal(int val, MathContext mc) |
| |
|
|
|
|
BigDecimal(long val) |
| |
|
|
|
|
BigDecimal(long val, MathContext mc) |
Public Methods
| |
|
|
|
BigDecimal |
abs() |
| |
|
|
|
BigDecimal |
abs(MathContext mc) |
| |
|
|
|
BigDecimal |
add(BigDecimal augend) |
| |
|
|
|
BigDecimal |
add(BigDecimal augend, MathContext mc) |
| |
|
|
|
byte |
byteValueExact() |
| |
|
|
|
int |
compareTo(BigDecimal val) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor, int scale, RoundingMode roundingMode) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor, RoundingMode roundingMode) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor, MathContext mc) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor, int roundingMode) |
| |
|
|
|
BigDecimal |
divide(BigDecimal divisor, int scale, int roundingMode) |
| |
|
|
|
BigDecimal[] |
divideAndRemainder(BigDecimal divisor, MathContext mc) |
| |
|
|
|
BigDecimal[] |
divideAndRemainder(BigDecimal divisor) |
| |
|
|
|
BigDecimal |
divideToIntegralValue(BigDecimal divisor, MathContext mc) |
| |
|
|
|
BigDecimal |
divideToIntegralValue(BigDecimal divisor) |
| |
|
|
|
double |
doubleValue() |
| |
|
|
|
boolean |
equals(Object x) |
| |
|
|
|
float |
floatValue() |
| |
|
|
|
int |
hashCode() |
| |
|
|
|
int |
intValue() |
| |
|
|
|
int |
intValueExact() |
| |
|
|
|
long |
longValue() |
| |
|
|
|
long |
longValueExact() |
| |
|
|
|
BigDecimal |
max(BigDecimal val) |
| |
|
|
|
BigDecimal |
min(BigDecimal val) |
| |
|
|
|
BigDecimal |
movePointLeft(int n) |
| |
|
|
|
BigDecimal |
movePointRight(int n) |
| |
|
|
|
BigDecimal |
multiply(BigDecimal multiplicand, MathContext mc) |
| |
|
|
|
BigDecimal |
multiply(BigDecimal multiplicand) |
| |
|
|
|
BigDecimal |
negate(MathContext mc) |
| |
|
|
|
BigDecimal |
negate() |
| |
|
|
|
BigDecimal |
plus() |
| |
|
|
|
BigDecimal |
plus(MathContext mc) |
| |
|
|
|
BigDecimal |
pow(int n, MathContext mc) |
| |
|
|
|
BigDecimal |
pow(int n) |
| |
|
|
|
int |
precision() |
| |
|
|
|
BigDecimal |
remainder(BigDecimal divisor, MathContext mc) |
| |
|
|
|
BigDecimal |
remainder(BigDecimal divisor) |
| |
|
|
|
BigDecimal |
round(MathContext mc) |
| |
|
|
|
int |
scale() |
| |
|
|
|
BigDecimal |
scaleByPowerOfTen(int n) |
| |
|
|
|
BigDecimal |
setScale(int newScale, RoundingMode roundingMode) |
| |
|
|
|
BigDecimal |
setScale(int newScale) |
| |
|
|
|
BigDecimal |
setScale(int newScale, int roundingMode) |
| |
|
|
|
short |
shortValueExact() |
| |
|
|
|
int |
signum() |
| |
|
|
|
BigDecimal |
stripTrailingZeros() |
| |
|
|
|
BigDecimal |
subtract(BigDecimal subtrahend, MathContext mc) |
| |
|
|
|
BigDecimal |
subtract(BigDecimal subtrahend) |
| |
|
|
|
BigInteger |
toBigInteger() |
| |
|
|
|
BigInteger |
toBigIntegerExact() |
| |
|
|
|
String |
toEngineeringString() |
| |
|
|
|
String |
toPlainString() |
| |
|
|
|
String |
toString() |
| |
|
|
|
BigDecimal |
ulp() |
| |
|
|
|
BigInteger |
unscaledValue() |
| |
|
|
static |
BigDecimal |
valueOf(double val) |
| |
|
|
static |
BigDecimal |
valueOf(long unscaledVal, int scale) |
| |
|
|
static |
BigDecimal |
valueOf(long unscaledVal) |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Constants
public
static
final
BigDecimal
ONE
The constant one as a BigDecimal.
public
static
final
int
ROUND_CEILING
Rounding mode to round towards positive infinity. For positive values
this rounding mode behaves as UP, for negative values as DOWN.
Constant Value:
2
(0x00000002)
public
static
final
int
ROUND_DOWN
Rounding mode where the values are rounded towards zero.
Constant Value:
1
(0x00000001)
public
static
final
int
ROUND_FLOOR
Rounding mode to round towards negative infinity. For positive values
this rounding mode behaves as DOWN, for negative values as UP.
Constant Value:
3
(0x00000003)
public
static
final
int
ROUND_HALF_DOWN
Rounding mode where values are rounded towards the nearest neighbour.
Ties are broken by rounding down.
Constant Value:
5
(0x00000005)
public
static
final
int
ROUND_HALF_EVEN
Rounding mode where values are rounded towards the nearest neighbour.
Ties are broken by rounding to the even neighbour.
Constant Value:
6
(0x00000006)
public
static
final
int
ROUND_HALF_UP
Rounding mode where values are rounded towards the nearest neighbour.
Ties are broken by rounding up.
Constant Value:
4
(0x00000004)
public
static
final
int
ROUND_UNNECESSARY
Rounding mode where the rounding operations throws an ArithmeticException
for the case that rounding is necessary, i.e. for the case that the value
cannot be represented exactly.
Constant Value:
7
(0x00000007)
public
static
final
int
ROUND_UP
Rounding mode where positive values are rounded towards positive infinity
and negative values towards negative infinity.
Constant Value:
0
(0x00000000)
public
static
final
BigDecimal
TEN
The constant ten as a BigDecimal.
public
static
final
BigDecimal
ZERO
The constant zero as a BigDecimal.
Public Constructors
public
BigDecimal(char[] in, int offset, int len)
Constructs a new
BigDecimal instance from a string representation
given as a character array.
Parameters
| in
| array of characters containing the string representation of
this BigDecimal |
| offset
| first index to be copied |
| len
| number of characters to be used |
public
BigDecimal(char[] in, int offset, int len, MathContext mc)
Constructs a new
BigDecimal instance from a string representation
given as a character array.
Parameters
| in
| array of characters containing the string representation of
this BigDecimal |
| offset
| first index to be copied |
| len
| number of characters to be used |
| mc
| rounding mode and precision for the result of this operation. |
public
BigDecimal(char[] in)
Constructs a new
BigDecimal instance from a string representation
given as a character array.
Parameters
| in
| array of characters containing the string representation of
this BigDecimal. |
public
BigDecimal(char[] in, MathContext mc)
Constructs a new
BigDecimal instance from a string representation
given as a character array. The result is rounded according to the
specified math context.
Parameters
| in
| array of characters containing the string representation of
this BigDecimal. |
| mc
| rounding mode and precision for the result of this operation. |
public
BigDecimal(String val)
Constructs a new
BigDecimal instance from a string
representation.
Parameters
| val
| string containing the string representation of this
BigDecimal. |
Constructs a new
BigDecimal instance from a string
representation. The result is rounded according to the specified math
context.
Parameters
| val
| string containing the string representation of this
BigDecimal. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| NumberFormatException
| if scale is out of range |
| NumberFormatException
| if val does not contain a valid string representation of a big
decimal. |
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
public
BigDecimal(double val)
Constructs a new
BigDecimal instance from the 64bit double
val. The constructed big decimal is equivalent to the double.
For example, new BigDecimal(0.1) is equal to
0.1000000000000000055511151231257827021181583404541015625. This happens
as 0.1 cannot be represented exactly in binary.
To generate a big decimal instance which is equivalent to 0.1 use the
BigDecimal(String) constructor.
Parameters
| val
| double value to be converted to a BigDecimal instance. |
public
BigDecimal(double val, MathContext mc)
Constructs a new
BigDecimal instance from the 64bit double
val. The constructed big decimal is equivalent to the double.
For example, new BigDecimal(0.1) is equal to
0.1000000000000000055511151231257827021181583404541015625. This happens
as 0.1 cannot be represented exactly in binary.
To generate a big decimal instance which is equivalent to 0.1 use the
BigDecimal(String) constructor.
Parameters
| val
| double value to be converted to a BigDecimal instance. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| NumberFormatException
| if val is infinity or not a number. |
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
public
BigDecimal(BigInteger val)
Constructs a new
BigDecimal instance from the given big integer
val. The scale of the result is 0.
Parameters
| val
| BigInteger value to be converted to a
BigDecimal instance.
|
Constructs a new
BigDecimal instance from the given big integer
val. The scale of the result is 0.
Parameters
| val
| BigInteger value to be converted to a
BigDecimal instance. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
public
BigDecimal(BigInteger unscaledVal, int scale)
Constructs a new
BigDecimal instance from a given unscaled value
unscaledVal and a given scale. The value of this instance is
unscaledVal * 10^{-
scale}.
Parameters
| unscaledVal
| BigInteger representing the unscaled value of this
BigDecimal instance. |
| scale
| scale of this BigDecimal instance.
|
public
BigDecimal(BigInteger unscaledVal, int scale, MathContext mc)
Constructs a new
BigDecimal instance from a given unscaled value
unscaledVal and a given scale. The value of this instance is
unscaledVal * 10^{-
scale}. The result is rounded
according to the specified math context.
Parameters
| unscaledVal
| BigInteger representing the unscaled value of this
BigDecimal instance. |
| scale
| scale of this BigDecimal instance. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
public
BigDecimal(int val)
Constructs a new
BigDecimal instance from the given int
val. The scale of the result is 0.
Parameters
| val
| int value to be converted to a BigDecimal instance.
|
public
BigDecimal(int val, MathContext mc)
Constructs a new
BigDecimal instance from the given int
val. The scale of the result is 0. The result is rounded
according to the specified math context.
Parameters
| val
| int value to be converted to a BigDecimal instance. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
public
BigDecimal(long val)
Constructs a new
BigDecimal instance from the given long
val. The scale of the result is 0.
Parameters
| val
| long value to be converted to a BigDecimal instance.
|
public
BigDecimal(long val, MathContext mc)
Constructs a new
BigDecimal instance from the given long
val. The scale of the result is 0. The result is rounded
according to the specified math context.
Parameters
| val
| long value to be converted to a BigDecimal instance. |
| mc
| rounding mode and precision for the result of this operation. |
Throws
| ArithmeticException
| if mc.precision > 0 and mc.roundingMode == UNNECESSARY and
the new big decimal cannot be represented within the given
precision without rounding.
|
Public Methods
Returns a new
BigDecimal whose value is the absolute value of
this. The scale of the result is the same as the scale of this.
Returns a new
BigDecimal whose value is the absolute value of
this. The result is rounded according to the passed context
mc.
Parameters
| mc
| rounding mode and precision for the result of this operation. |
Returns a new
BigDecimal whose value is
this + augend.
The scale of the result is the maximum of the scales of the two
arguments.
Parameters
| augend
| value to be added to this. |
Returns a new
BigDecimal whose value is
this + augend.
The result is rounded according to the passed context
mc.
Parameters
| augend
| value to be added to this. |
| mc
| rounding mode and precision for the result of this operation. |
public
byte
byteValueExact()
Returns this
BigDecimal as a byte value if it has no fractional
part and if its value fits to the byte range ([-128..127]). If these
conditions are not met, an
ArithmeticException is thrown.
Returns
- this
BigDecimal as a byte value.
public
int
compareTo(BigDecimal val)
Compares this
BigDecimal with
val. Returns one of the
three values 1, 0, or -1. The method behaves as if this.subtract(val) is
computed. If this difference is > 0 then 1 is returned, if the difference
is < 0 then -1 is returned, and if the difference is 0 then 0 is
returned. This means, that if two decimal instances are compared which
are equal in value but differ in scale, then these two instances are
considered as equal.
Parameters
| val
| value to be compared with this. |
Returns
- 1 if this > val, -1 if this < val, 0 if this == val.
Returns a new
BigDecimal whose value is
this / divisor.
As scale of the result the parameter
scale is used. If rounding
is required to meet the specified scale, then the specified rounding mode
roundingMode is applied.
Parameters
| divisor
| value by which this is divided. |
| scale
| the scale of the result returned. |
| roundingMode
| rounding mode to be used to round the result. |
Returns
this / divisor rounded according to the given rounding
mode.
Returns a new
BigDecimal whose value is
this / divisor.
The scale of the result is the scale of this. If rounding is required to
meet the specified scale, then the specified rounding mode
roundingMode is applied.
Parameters
| divisor
| value by which this is divided. |
| roundingMode
| rounding mode to be used to round the result. |
Returns
this / divisor rounded according to the given rounding
mode.