MathContext
  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 base-dependent, comprise:
digits: the number of digits (precision) to be used for an operationform: the form of any exponent that results from the operationlostDigits: whether checking for lost digits is enabledroundingMode: 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:
Summary
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 | |
|---|---|
Constants
ENGINEERING
public static final 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)
PLAIN
public static final 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)
ROUND_CEILING
public static final 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 non-zero then the result should be rounded towards the next more positive digit.
Constant Value: 2 (0x00000002)
ROUND_DOWN
public static final 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)
ROUND_FLOOR
public static final 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 non-zero then the result should be rounded towards the next more negative digit.
Constant Value: 3 (0x00000003)
ROUND_HALF_DOWN
public static final 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)
ROUND_HALF_EVEN
public static final 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)
ROUND_HALF_UP
public static final 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)
ROUND_UNNECESSARY
public static final 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 non-zero then an
 ArithmeticException should be thrown.
Constant Value: 7 (0x00000007)
ROUND_UP
public static final 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 non-zero then the result will be rounded up (away from zero).
Constant Value: 0 (0x00000000)
SCIENTIFIC
public static final 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)
Fields
DEFAULT
public static final MathContext DEFAULT
A MathContext object initialized to the default
 settings for general-purpose arithmetic.  That is,
 digits=9 form=SCIENTIFIC lostDigits=false
 roundingMode=ROUND_HALF_UP.
See also:
Public constructors
MathContext
public 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
public 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
public 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
public 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. | 
Public methods
getDigits
public int getDigits ()
Returns the digits setting. This value is always non-negative.
| Returns | |
|---|---|
int | 
        an int which is the value of the digits
         setting | 
      
getForm
public 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 | 
      
getLostDigits
public 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 | 
      
getRoundingMode
public 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 | 
      
toString
public String toString ()
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 ofSCIENTIFIC,PLAIN, orENGINEERING). - 
 
lostDigits=, immediately followed by the value of the lostDigits setting (1if enabled,0if 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. |