| java.lang.Object com.ibm.icu.math.MathContext
MathContext | final public class MathContext implements java.io.Serializable(Code) | | The MathContext immutable class encapsulates the
settings understood by the operator methods of the
BigDecimal class (and potentially other classes). Operator methods are those
that effect an operation on a number or a pair of numbers.
The settings, which are not base-dependent, comprise:
digits :
the number of digits (precision) to be used for an operation
form :
the form of any exponent that results from the operation
lostDigits :
whether checking for lost digits is enabled
roundingMode :
the algorithm to be used for rounding.
When provided, a MathContext object supplies the
settings for an operation directly.
When MathContext.DEFAULT is provided for a
MathContext parameter then the default settings are used
(9, SCIENTIFIC, false, ROUND_HALF_UP ).
In the BigDecimal class, all methods which accept a
MathContext object defaults) also have a version of the
method which does not accept a MathContext parameter. These versions
carry out unlimited precision fixed point arithmetic (as though the
settings were (0, PLAIN, false, ROUND_HALF_UP ).
The instance variables are shared with default access (so they are
directly accessible to the BigDecimal class), but must
never be changed.
The rounding mode constants have the same names and values as the
constants of the same name in java.math.BigDecimal , to
maintain compatibility with earlier versions of
BigDecimal .
See Also: BigDecimal author: Mike Cowlishaw |
Field Summary | |
final public static com.ibm.icu.math.MathContext | DEFAULT A MathContext object initialized to the default
settings for general-purpose arithmetic. | final public static int | ENGINEERING Standard floating point notation (with engineering exponential
format, where the power of ten is a multiple of 3). | final public static int | PLAIN Plain (fixed point) notation, without any exponent. | final public static int | ROUND_CEILING Rounding mode to round to a more positive number. | final public static int | ROUND_DOWN Rounding mode to round towards zero.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
All discarded digits are ignored (truncated). | final public static int | ROUND_FLOOR Rounding mode to round to a more negative number. | final public static int | ROUND_HALF_DOWN Rounding mode to round to nearest neighbor, where an equidistant
value is rounded down.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than half (0.5 times)
the value of a one in the next position then the result should be
rounded up (away from zero). | final public static int | ROUND_HALF_EVEN Rounding mode to round to nearest neighbor, where an equidistant
value is rounded to the nearest even neighbor.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than half (0.5 times)
the value of a one in the next position then the result should be
rounded up (away from zero). | final public static int | ROUND_HALF_UP Rounding mode to round to nearest neighbor, where an equidistant
value is rounded up.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than or equal to half
(0.5 times) the value of a one in the next position then the result
should be rounded up (away from zero). | final public static int | ROUND_UNNECESSARY Rounding mode to assert that no rounding is necessary. | final public static int | ROUND_UP Rounding mode to round away from zero. | final public static int | SCIENTIFIC Standard floating point notation (with scientific exponential
format, where there is one digit before any decimal point). | int | digits The number of digits (precision) to be used for an operation. | int | form The form of results from an operation. | boolean | lostDigits Controls whether lost digits checking is enabled for an
operation. | int | roundingMode The rounding algorithm to be used for an operation. |
Constructor Summary | |
public | MathContext(int setdigits) Constructs a new MathContext with a specified
precision. | public | MathContext(int setdigits, int setform) Constructs a new MathContext with a specified
precision and form. | public | MathContext(int setdigits, int setform, boolean setlostdigits) Constructs a new MathContext with a specified
precision, form, and lostDigits setting. | public | MathContext(int setdigits, int setform, boolean setlostdigits, int setroundingmode) Constructs a new MathContext with a specified
precision, form, lostDigits, and roundingMode setting. |
ENGINEERING | final public static int ENGINEERING(Code) | | Standard floating point notation (with engineering exponential
format, where the power of ten is a multiple of 3).
Used as a setting to control the form of the result of a
BigDecimal operation.
A zero result in plain form may have a decimal part of one or
more zeros.
See Also: MathContext.PLAIN See Also: MathContext.SCIENTIFIC |
PLAIN | final public static int PLAIN(Code) | | Plain (fixed point) notation, without any exponent.
Used as a setting to control the form of the result of a
BigDecimal operation.
A zero result in plain form may have a decimal part of one or
more zeros.
See Also: MathContext.ENGINEERING See Also: MathContext.SCIENTIFIC |
ROUND_CEILING | final public static int ROUND_CEILING(Code) | | Rounding mode to round to a more positive number.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If any of the discarded digits are non-zero then the result
should be rounded towards the next more positive digit.
|
ROUND_DOWN | final public static int ROUND_DOWN(Code) | | Rounding mode to round towards zero.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
All discarded digits are ignored (truncated). The result is
neither incremented nor decremented.
|
ROUND_FLOOR | final public static int ROUND_FLOOR(Code) | | Rounding mode to round to a more negative number.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If any of the discarded digits are non-zero then the result
should be rounded towards the next more negative digit.
|
ROUND_HALF_DOWN | final public static int ROUND_HALF_DOWN(Code) | | Rounding mode to round to nearest neighbor, where an equidistant
value is rounded down.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than half (0.5 times)
the value of a one in the next position then the result should be
rounded up (away from zero). Otherwise the discarded digits are
ignored.
|
ROUND_HALF_EVEN | final public static int ROUND_HALF_EVEN(Code) | | Rounding mode to round to nearest neighbor, where an equidistant
value is rounded to the nearest even neighbor.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than half (0.5 times)
the value of a one in the next position then the result should be
rounded up (away from zero). If they represent less than half,
then the result should be rounded down.
Otherwise (they represent exactly half) the result is rounded
down if its rightmost digit is even, or rounded up if its
rightmost digit is odd (to make an even digit).
|
ROUND_HALF_UP | final public static int ROUND_HALF_UP(Code) | | Rounding mode to round to nearest neighbor, where an equidistant
value is rounded up.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If the discarded digits represent greater than or equal to half
(0.5 times) the value of a one in the next position then the result
should be rounded up (away from zero). Otherwise the discarded
digits are ignored.
|
ROUND_UNNECESSARY | final public static int ROUND_UNNECESSARY(Code) | | Rounding mode to assert that no rounding is necessary.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
Rounding (potential loss of information) is not permitted.
If any of the discarded digits are non-zero then an
ArithmeticException should be thrown.
|
ROUND_UP | final public static int ROUND_UP(Code) | | Rounding mode to round away from zero.
Used as a setting to control the rounding mode used during a
BigDecimal operation.
If any of the discarded digits are non-zero then the result will
be rounded up (away from zero).
|
SCIENTIFIC | final public static int SCIENTIFIC(Code) | | Standard floating point notation (with scientific exponential
format, where there is one digit before any decimal point).
Used as a setting to control the form of the result of a
BigDecimal operation.
A zero result in plain form may have a decimal part of one or
more zeros.
See Also: MathContext.ENGINEERING See Also: MathContext.PLAIN |
digits | int digits(Code) | | The number of digits (precision) to be used for an operation.
A value of 0 indicates that unlimited precision (as many digits
as are required) will be used.
The
BigDecimal operator methods use this value to
determine the precision of results.
Note that leading zeros (in the integer part of a number) are
never significant.
digits will always be non-negative.
|
lostDigits | boolean lostDigits(Code) | | Controls whether lost digits checking is enabled for an
operation.
Set to true to enable checking, or
to false to disable checking.
When enabled, the
BigDecimal operator methods check
the precision of their operand or operands, and throw an
ArithmeticException if an operand is more precise
than the digits setting (that is, digits would be lost).
When disabled, operands are rounded to the specified digits.
|
MathContext | public MathContext(int setdigits)(Code) | | Constructs a new MathContext with a specified
precision.
The other settings are set to the default values
(see
MathContext.DEFAULT ).
An IllegalArgumentException is thrown if the
setdigits parameter is out of range
(<0 or >999999999).
Parameters: setdigits - The int digits settingfor this MathContext . throws: IllegalArgumentException - parameter out of range. |
MathContext | public MathContext(int setdigits, int setform)(Code) | | Constructs a new MathContext with a specified
precision and form.
The other settings are set to the default values
(see
MathContext.DEFAULT ).
An IllegalArgumentException is thrown if the
setdigits parameter is out of range
(<0 or >999999999), or if the value given for the
setform parameter is not one of the appropriate
constants.
Parameters: setdigits - The int digits settingfor this MathContext . Parameters: setform - The int form settingfor this MathContext . throws: IllegalArgumentException - parameter out of range. |
MathContext | public MathContext(int setdigits, int setform, boolean setlostdigits)(Code) | | Constructs a new MathContext with a specified
precision, form, and lostDigits setting.
The roundingMode setting is set to its default value
(see
MathContext.DEFAULT ).
An IllegalArgumentException is thrown if the
setdigits parameter is out of range
(<0 or >999999999), or if the value given for the
setform parameter is not one of the appropriate
constants.
Parameters: setdigits - The int digits settingfor this MathContext . Parameters: setform - The int form settingfor this MathContext . Parameters: setlostdigits - The boolean lostDigitssetting for this MathContext . throws: IllegalArgumentException - parameter out of range. |
MathContext | public MathContext(int setdigits, int setform, boolean setlostdigits, int setroundingmode)(Code) | | Constructs a new MathContext with a specified
precision, form, lostDigits, and roundingMode setting.
An IllegalArgumentException is thrown if the
setdigits parameter is out of range
(<0 or >999999999), or if the value given for the
setform or setroundingmode parameters is
not one of the appropriate constants.
Parameters: setdigits - The int digits settingfor this MathContext . Parameters: setform - The int form settingfor this MathContext . Parameters: setlostdigits - The boolean lostDigitssetting for this MathContext . Parameters: setroundingmode - The int roundingMode settingfor this MathContext . throws: IllegalArgumentException - parameter out of range. |
getDigits | public int getDigits()(Code) | | Returns the digits setting.
This value is always non-negative.
an int which is the value of the digitssetting |
getLostDigits | public boolean getLostDigits()(Code) | | Returns the lostDigits setting.
This will be either true (enabled) or
false (disabled).
a boolean which is the value of the lostDigitssetting |
toString | public java.lang.String toString()(Code) | | Returns the MathContext as a readable string.
The String returned represents the settings of the
MathContext object as four blank-delimited words
separated by a single blank and with no leading or trailing blanks,
as follows:
-
digits= , immediately followed by
the value of the digits setting as a numeric word.
-
form= , immediately followed by
the value of the form setting as an uppercase word
(one of SCIENTIFIC , PLAIN , or
ENGINEERING ).
-
lostDigits= , immediately followed by
the value of the lostDigits setting
(1 if enabled, 0 if disabled).
-
roundingMode= , immediately followed by
the value of the roundingMode setting as a word.
This word will be the same as the name of the corresponding public
constant.
For example:
digits=9 form=SCIENTIFIC lostDigits=0 roundingMode=ROUND_HALF_UP
Additional words may be appended to the result of
toString in the future if more properties are added
to the class.
a String representing the context settings. |
|
|