java.math
public class BigDecimal extends Number implements Comparable<BigDecimal>
Field Summary | |
---|---|
static BigDecimal | ONE
The constant one as a BigDecimal with scale zero. |
static int | ROUND_CEILING |
static int | ROUND_DOWN |
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 |
static BigDecimal | TEN
The constant ten as a BigDecimal with scale zero. |
static BigDecimal | ZERO
The constant zero as a BigDecimal with scale zero. |
Constructor Summary | |
---|---|
BigDecimal(int val)
Constructs a new BigDecimal whose unscaled value is val and whose
scale is zero. | |
BigDecimal(int val, MathContext mc)
Constructs a BigDecimal using the BigDecimal(int) constructor and then
rounds according to the MathContext. | |
BigDecimal(long val)
Constructs a new BigDecimal whose unscaled value is val and whose
scale is zero. | |
BigDecimal(long val, MathContext mc)
Constructs a BigDecimal from the long in the same way as BigDecimal(long)
and then rounds according to the MathContext. | |
BigDecimal(BigInteger num, MathContext mc)
Constructs a BigDecimal whose value is given by num rounded according to
mc. | |
BigDecimal(String val, MathContext mc)
Constructs a BigDecimal from the String val according to the same
rules as the BigDecimal(String) constructor and then rounds
according to the MathContext mc. | |
BigDecimal(BigInteger num)
Constructs a BigDecimal whose unscaled value is num and whose
scale is zero. | |
BigDecimal(BigInteger num, int scale)
Constructs a BigDecimal whose unscaled value is num and whose
scale is scale. | |
BigDecimal(BigInteger num, int scale, MathContext mc)
Constructs a BigDecimal using the BigDecimal(BigInteger, int)
constructor and then rounds according to the MathContext. | |
BigDecimal(double num, MathContext mc)
Constructs a BigDecimal in the same way as BigDecimal(double) and then
rounds according to the MathContext. | |
BigDecimal(double num) | |
BigDecimal(char[] in, int offset, int len, MathContext mc)
Constructs a BigDecimal from the char subarray and rounding
according to the MathContext. | |
BigDecimal(char[] in, MathContext mc)
Constructs a BigDecimal from the char array and rounding according
to the MathContext. | |
BigDecimal(char[] in)
Constructs a BigDecimal from the given char array, accepting the same
sequence of characters as the BigDecimal(String) constructor. | |
BigDecimal(char[] in, int offset, int len)
Constructs a BigDecimal from a char subarray, accepting the same sequence
of characters as the BigDecimal(String) constructor. | |
BigDecimal(String num) |
Method Summary | |
---|---|
BigDecimal | abs() |
BigDecimal | abs(MathContext mc)
Returns a BigDecimal whose value is the absolute value of this BigDecimal
with rounding according to the given MathContext. |
BigDecimal | add(BigDecimal val) |
BigDecimal | add(BigDecimal val, MathContext mc)
Returns a BigDecimal whose value is found first by calling the
method add(val) and then by rounding according to the MathContext mc. |
byte | byteValueExact()
Converts this BigDecimal into a byte by first calling longValueExact
and then checking that the long returned from that
method fits into a byte . |
int | compareTo(BigDecimal val) |
BigDecimal | divide(BigDecimal val, int roundingMode) |
BigDecimal | divide(BigDecimal val, int scale, RoundingMode roundingMode)
Returns a BigDecimal whose value is (this / val), with the specified scale
and rounding according to the RoundingMode |
BigDecimal | divide(BigDecimal val, RoundingMode roundingMode)
Returns a BigDecimal whose value is (this / val) rounded according to the
RoundingMode |
BigDecimal | divide(BigDecimal val, int newScale, int roundingMode) |
BigDecimal | divide(BigDecimal divisor)
Performs division, if the resulting quotient requires rounding
(has a nonterminating decimal expansion),
an ArithmeticException is thrown.
|
BigDecimal[] | divideAndRemainder(BigDecimal val)
Returns a BigDecimal array, the first element of which is the integer part
of this / val, and the second element of which is the remainder of
that quotient. |
BigDecimal | divideToIntegralValue(BigDecimal val)
Returns a BigDecimal whose value is the integer part of the quotient
this / val. |
double | doubleValue() |
boolean | equals(Object o) |
float | floatValue() |
int | hashCode() |
int | intValue() |
int | intValueExact()
Converts this BigDecimal into an int by first calling longValueExact
and then checking that the long returned from that
method fits into an int . |
long | longValue() |
long | longValueExact()
Converts this BigDecimal to a long value. |
BigDecimal | max(BigDecimal val) |
BigDecimal | min(BigDecimal val) |
BigDecimal | movePointLeft(int n) |
BigDecimal | movePointRight(int n) |
BigDecimal | multiply(BigDecimal val) |
BigDecimal | multiply(BigDecimal val, MathContext mc)
Returns a BigDecimal whose value is (this x val) before it is rounded
according to the MathContext mc. |
BigDecimal | negate() |
BigDecimal | negate(MathContext mc)
Returns a BigDecimal whose value is found first by negating this via
the negate() method, then by rounding according to the MathContext mc. |
BigDecimal | plus()
Returns this BigDecimal. |
BigDecimal | plus(MathContext mc)
Returns a BigDecimal whose value is found by rounding this
according to the MathContext. |
BigDecimal | pow(int n)
Returns a BigDecimal whose value is this to the power of
n . |
BigDecimal | pow(int n, MathContext mc)
Returns a BigDecimal whose value is determined by first calling pow(n)
and then by rounding according to the MathContext mc. |
int | precision()
Returns the precision of this BigDecimal (the number of digits in the
unscaled value). |
BigDecimal | remainder(BigDecimal val)
Returns a BigDecimal whose value is the remainder in the quotient
this / val. |
BigDecimal | round(MathContext mc)
Returns a BigDecimal which is this BigDecimal rounded according to the
MathContext rounding settings. |
int | scale() |
BigDecimal | scaleByPowerOfTen(int n)
Returns a BigDecimal whose numerical value is the numerical value
of this BigDecimal multiplied by 10 to the power of n . |
BigDecimal | setScale(int scale) |
BigDecimal | setScale(int scale, int roundingMode) |
BigDecimal | setScale(int newScale, RoundingMode roundingMode)
Returns a BigDecimal whose value is the same as this BigDecimal but whose
representation has a scale of newScale . |
short | shortValueExact()
Converts this BigDecimal into a short by first calling longValueExact
and then checking that the long returned from that
method fits into a short . |
int | signum() |
BigDecimal | stripTrailingZeros()
Returns a BigDecimal which is numerically equal to this BigDecimal but
with no trailing zeros in the representation. |
BigDecimal | subtract(BigDecimal val) |
BigDecimal | subtract(BigDecimal val, MathContext mc)
Returns a BigDecimal whose value is found first by calling the
method subtract(val) and then by rounding according to the MathContext mc. |
BigInteger | toBigInteger()
Converts this BigDecimal to a BigInteger. |
BigInteger | toBigIntegerExact()
Converts this BigDecimal into a BigInteger, throwing an
ArithmeticException if the conversion is not exact. |
String | toEngineeringString()
Returns the String representation of this BigDecimal, using engineering
notation if necessary. |
String | toPlainString()
Returns a String representation of this BigDecimal without using
scientific notation. |
String | toString()
Returns the String representation of this BigDecimal, using scientific
notation if necessary. |
BigDecimal | ulp()
Returns the size of a unit in the last place of this BigDecimal. |
BigInteger | unscaledValue() |
static BigDecimal | valueOf(long val) |
static BigDecimal | valueOf(long val, int scale) |
static BigDecimal | valueOf(double val)
Returns a new BigDecimal constructed from the BigDecimal(String)
constructor using the Double.toString(double) method to obtain
the String. |
Since: 1.5
Since: 1.5
Since: 1.5
Parameters: val the value of the new BigDecimal
Since: 1.5
Parameters: val the value for the initial (unrounded) BigDecimal mc the MathContext specifying the rounding
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: val the value of the new BigDecimal
Parameters: val the long from which we create the initial BigDecimal mc the MathContext that specifies the rounding behaviour
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: num the unscaledValue, before rounding mc the MathContext that specifies the precision
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY * @since 1.5
Parameters: val the String from which we construct the initial BigDecimal mc the MathContext that specifies the rounding
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: num the value of the new BigDecimal
Parameters: num scale
Parameters: num the unscaled value of the unrounded BigDecimal scale the scale of the unrounded BigDecimal mc the MathContext specifying the rounding
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: num the double from which the initial BigDecimal is created mc the MathContext that specifies the rounding behaviour
Throws: ArithmeticException if the result is inexact but the rounding type is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: in the char array offset the start of the subarray len the length of the subarray mc the MathContext for rounding
Throws: NumberFormatException if the char subarray is not a valid BigDecimal representation ArithmeticException if the result is inexact but the rounding mode is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: in the char array mc the MathContext
Throws: NumberFormatException if in
is not a valid BigDecimal
representation ArithmeticException if the result is inexact but the rounding mode
is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: in the char array
Throws: NumberFormatException if in
is not a valid BigDecimal
representation
Since: 1.5
Parameters: in the char array offset the start of the subarray len the length of the subarray
Throws: NumberFormatException if in
is not a valid
BigDecimal representation.
Since: 1.5
Parameters: mc the MathContext
Returns: the new BigDecimal
Parameters: val the augend mc the MathContext for rounding
Returns: this
+ val
, rounded if need be
Throws: ArithmeticException if the value is inexact but the rounding is RoundingMode.UNNECESSARY
Since: 1.5
long
returned from that
method fits into a byte
.Returns: a byte whose value is this
Throws: ArithmeticException if this BigDecimal has a fractional part or is too large to fit into a byte.
Since: 1.5
Parameters: val the divisor scale the scale of the BigDecimal returned roundingMode the rounding mode to use
Returns: a BigDecimal whose value is approximately (this / val)
Throws: ArithmeticException if divisor is zero or the rounding mode is UNNECESSARY but the specified scale cannot represent the value exactly
Since: 1.5
Parameters: val the divisor roundingMode the rounding mode to use
Returns: a BigDecimal whose value is approximately (this / val)
Throws: ArithmeticException if divisor is zero or the rounding mode is UNNECESSARY but the specified scale cannot represent the value exactly
Since: 1.5
Parameters: val the divisor
Returns: the above described BigDecimal array
Throws: ArithmeticException if val == 0
Since: 1.5
Parameters: val the divisor
Returns: a BigDecimal whose value is the integer part of this / val.
Throws: ArithmeticException if val == 0
Since: 1.5
long
returned from that
method fits into an int
.Returns: an int whose value is this
Throws: ArithmeticException if this BigDecimal has a fractional part or is too large to fit into an int.
Since: 1.5
Returns: the long value
Throws: ArithmeticException if rounding occurs or if overflow occurs
Since: 1.5
Parameters: val the multiplicand mc the MathContext for rounding
Returns: a new BigDecimal with value approximately (this x val)
Throws: ArithmeticException if the value is inexact but the rounding mode is RoundingMode.UNNECESSARY
Since: 1.5
Parameters: mc the MathContext for rounding
Returns: a BigDecimal whose value is approximately (-this)
Throws: ArithmeticException if the value is inexact but the rounding mode is RoundingMode.UNNECESSARY
Since: 1.5
Returns: this
Since: 1.5
this
according to the MathContext. This is the same as round(MathContext).Parameters: mc the MathContext for rounding
Returns: a BigDecimal whose value is this
before being rounded
Throws: ArithmeticException if the value is inexact but the rounding mode is RoundingMode.UNNECESSARY
Since: 1.5
this
to the power of
n
.Parameters: n the power
Returns: the new BigDecimal
Since: 1.5
Parameters: n the power mc the MathContext
Returns: the new BigDecimal
Throws: ArithmeticException if n < 0 or n > 999999999 or if the result is inexact but the rounding is RoundingMode.UNNECESSARY
Since: 1.5
Returns: the number of digits in the unscaled value, or 1 if the value is zero.
Parameters: val the divisor
Returns: a BigDecimal whose value is the remainder
Throws: ArithmeticException if val == 0
Since: 1.5
Parameters: mc the MathContext that tells us how to round
Returns: the rounded BigDecimal
n
.Parameters: n the power of ten
Returns: the new BigDecimal
Since: 1.5
newScale
. If the scale is
reduced then rounding may occur, according to the RoundingMode.Parameters: newScale roundingMode
Returns: a BigDecimal whose scale is as given, whose value is
this
with possible rounding
Throws: ArithmeticException if the rounding mode is UNNECESSARY but rounding is required
Since: 1.5
long
returned from that
method fits into a short
.Returns: a short whose value is this
Throws: ArithmeticException if this BigDecimal has a fractional part or is too large to fit into a short.
Since: 1.5
Returns: a numerically equal BigDecimal with no trailing zeros
Parameters: val the subtrahend mc the MathContext for rounding
Returns: this
- val
, rounded if need be
Throws: ArithmeticException if the value is inexact but the rounding is RoundingMode.UNNECESSARY
Since: 1.5
Returns: a BigDecimal whose value is equal to floor[this]
Returns: a BigInteger whose value is equal to the value of this BigDecimal
Since: 1.5
Returns: a String representation of this BigDecimal in engineering notation
Since: 1.5
Returns: a String representation of this BigDecimal
Since: 1.5
scale == 0 is returned.
2. an int adjExp
is created which is equal to the negation
of scale
plus the number of digits in the unscaled value,
minus one.
3. if scale >= 0 && adjExp >= -6
then we represent this
BigDecimal without scientific notation. A decimal is added if the
scale is positive and zeros are prepended as necessary.
4. if scale is negative or adjExp is less than -6 we use scientific
notation. If the unscaled value has more than one digit, a decimal
as inserted after the first digit, the character 'E' is appended
and adjExp is appended.
Returns: the size of a unit in the last place of this
.
Since: 1.5
Parameters: val the double value used in Double.toString(double)
Returns: a BigDecimal representation of val
Throws: NumberFormatException if val is NaN or infinite
Since: 1.5