public final class MathContext
extends Object
implements Serializable
java.lang.Object  
↳  android.icu.math.MathContext 
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 basedependent, 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:
Constants 


int 
ENGINEERING Standard floating point notation (with engineering exponential format, where the power of ten is a multiple of 3). 
int 
PLAIN Plain (fixed point) notation, without any exponent. 
int 
ROUND_CEILING Rounding mode to round to a more positive number. 
int 
ROUND_DOWN Rounding mode to round towards zero. 
int 
ROUND_FLOOR Rounding mode to round to a more negative number. 
int 
ROUND_HALF_DOWN Rounding mode to round to nearest neighbor, where an equidistant value is rounded down. 
int 
ROUND_HALF_EVEN Rounding mode to round to nearest neighbor, where an equidistant value is rounded to the nearest even neighbor. 
int 
ROUND_HALF_UP Rounding mode to round to nearest neighbor, where an equidistant value is rounded up. 
int 
ROUND_UNNECESSARY Rounding mode to assert that no rounding is necessary. 
int 
ROUND_UP Rounding mode to round away from zero. 
int 
SCIENTIFIC Standard floating point notation (with scientific exponential format, where there is one digit before any decimal point). 
Fields 


public static final MathContext 
DEFAULT A 
Public constructors 


MathContext(int setdigits) Constructs a new 

MathContext(int setdigits, int setform) Constructs a new 

MathContext(int setdigits, int setform, boolean setlostdigits) Constructs a new 

MathContext(int setdigits, int setform, boolean setlostdigits, int setroundingmode) Constructs a new 
Public methods 


int 
getDigits() Returns the digits setting. 
int 
getForm() Returns the form setting. 
boolean 
getLostDigits() Returns the lostDigits setting. 
int 
getRoundingMode() Returns the roundingMode setting. 
String 
toString() Returns the 
Inherited methods 


From class java.lang.Object

int ENGINEERING
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:
Constant Value: 2 (0x00000002)
int PLAIN
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:
Constant Value: 0 (0x00000000)
int ROUND_CEILING
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 nonzero then the result should be rounded towards the next more positive digit.
Constant Value: 2 (0x00000002)
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). The result is neither incremented nor decremented.
Constant Value: 1 (0x00000001)
int ROUND_FLOOR
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 nonzero then the result should be rounded towards the next more negative digit.
Constant Value: 3 (0x00000003)
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). Otherwise the discarded digits are ignored.
Constant Value: 5 (0x00000005)
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). 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).
Constant Value: 6 (0x00000006)
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). Otherwise the discarded digits are ignored.
Constant Value: 4 (0x00000004)
int ROUND_UNNECESSARY
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 nonzero then an ArithmeticException
should be thrown.
Constant Value: 7 (0x00000007)
int ROUND_UP
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 nonzero then the result will be rounded up (away from zero).
Constant Value: 0 (0x00000000)
int SCIENTIFIC
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:
Constant Value: 1 (0x00000001)
MathContext DEFAULT
A MathContext
object initialized to the default settings for generalpurpose arithmetic. That is, digits=9 form=SCIENTIFIC lostDigits=false roundingMode=ROUND_HALF_UP
.
See also:
MathContext (int setdigits)
Constructs a new MathContext
with a specified precision. The other settings are set to the default values (see DEFAULT
). An IllegalArgumentException
is thrown if the setdigits
parameter is out of range (<0 or >999999999).
Parameters  

setdigits 
int : The int digits setting for this MathContext . 
Throws  

IllegalArgumentException 
parameter out of range. 
MathContext (int setdigits, int setform)
Constructs a new MathContext
with a specified precision and form. The other settings are set to the default values (see 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 
int : The int digits setting for this MathContext . 
setform 
int : The int form setting for this MathContext . 
Throws  

IllegalArgumentException 
parameter out of range. 
MathContext (int setdigits, int setform, boolean setlostdigits)
Constructs a new MathContext
with a specified precision, form, and lostDigits setting. The roundingMode setting is set to its default value (see 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 
int : The int digits setting for this MathContext . 
setform 
int : The int form setting for this MathContext . 
setlostdigits 
boolean : The boolean lostDigits setting for this MathContext . 
Throws  

IllegalArgumentException 
parameter out of range. 
MathContext (int setdigits, int setform, boolean setlostdigits, int setroundingmode)
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 
int : The int digits setting for this MathContext . 
setform 
int : The int form setting for this MathContext . 
setlostdigits 
boolean : The boolean lostDigits setting for this MathContext . 
setroundingmode 
int : The int roundingMode setting for this MathContext . 
Throws  

IllegalArgumentException 
parameter out of range. 
int getDigits ()
Returns the digits setting. This value is always nonnegative.
Returns  

int 
an int which is the value of the digits setting 
int getForm ()
Returns the form setting. This will be one of ENGINEERING
, PLAIN
, or SCIENTIFIC
.
Returns  

int 
an int which is the value of the form setting 
boolean getLostDigits ()
Returns the lostDigits setting. This will be either true
(enabled) or false
(disabled).
Returns  

boolean 
a boolean which is the value of the lostDigits setting 
int getRoundingMode ()
Returns the roundingMode setting. This will be one of ROUND_CEILING
, ROUND_DOWN
, ROUND_FLOOR
, ROUND_HALF_DOWN
, ROUND_HALF_EVEN
, ROUND_HALF_UP
, ROUND_UNNECESSARY
, or ROUND_UP
.
Returns  

int 
an int which is the value of the roundingMode setting 
String toString ()
Returns the MathContext
as a readable string. The String
returned represents the settings of the MathContext
object as four blankdelimited 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.
Returns  

String 
a String representing the context settings. 