La clase java.math.MathContext proporciona objetos inmutables que encapsulan configuraciones de contexto y definen esas reglas de operadores numéricos, como las que implementa la clase BigDecimal.
Las configuraciones independientes de la base son las siguientes:
- Precisión : el número de dígitos que se utilizará para una operación; esta precisión se redondea a los resultados.
- RoundingMode : un objeto RoundingMode que determina el algoritmo de redondeo que se utilizará.
El número de dígitos significativos se especifica mediante la precisión. El modo predeterminado de redondeo es el modo HALF_UP , que se presentará más adelante.
Ilustración:
Supongamos que se selecciona un número aleatorio, digamos que 123 y la tarea ahora es redondear en 2 dígitos significativos, obtendrá 120. Podría ser más evidente si piensa en términos de notación científica. Como en notaciones científicas, 123 sería 1.23e2. Si solo mantiene 2 dígitos significativos, obtiene 1.2e2 o 120. Al reducir el número de dígitos significativos, reducimos la precisión con la que podemos especificar un número.
La parte RoundingMode especifica cómo debemos manejar la pérdida de precisión. Si usa 123 como el número y solicita 2 dígitos significativos, ha reducido su precisión para reutilizar el ejemplo. Con un Modo de redondeo de HALF_UP (el modo predeterminado), 123 se convertirá en 120. Con un Modo de redondeo de TECHO, obtendrá 130.
Sintaxis: declaración de clase
public final class MathContext extends Object implements Serializable
Constructor:
- MathContext(int setPrecision) : este constructor construye un nuevo MathContext con la precisión especificada y el modo de redondeo HALF_UP.
- MathContext(int setPrecision, RoundingMode setRoundingMode) : este constructor construye un nuevo MathContext con una precisión y un modo de redondeo especificados.
- MathContext(String val) : este constructor construye un nuevo MathContext a partir de una string.
Ahora, profundizando en los métodos presentes en esta clase, más adelante, para ser utilizados en la parte de implementación en el programa de la misma.
Método |
Descripción |
---|---|
es igual a (Objeto x) | Este método compara este MathContext con el objeto especificado para la igualdad. |
obtenerPrecisión() | Este método devuelve la configuración de precisión. |
obtenerModoRedondeo() | Este método devuelve la configuración de roundingMode. |
código hash() | Este método devuelve el código hash para este MathContext. |
Enstringr() | Este método devuelve la representación de string de este MathContext. |
Ejemplo:
Java
// Java Program to illustrate java.math.Context class // Importing all classes from // java.math package import java.math.*; // Main class class GFG { // Main driver method public static void main(String args[]) { // Custom input number 'N' over which // class operation are performed // N = 246.8 // erforming the rounding of operations // Rounding off is carried out across // 4 digits // N = 246.8 // It has 4 digits only so // the output is same as input // Case 1 // Across all digits of the input N = 4 System.out.println(new BigDecimal( "246.8", new MathContext(4, RoundingMode.HALF_UP))); // Case 2 // Across 'N/2' of the input 'N' // Here, acrossings 2 digits as input N has 4 digits // Rounding HALF_UP System.out.println(new BigDecimal( "246.8", new MathContext(2, RoundingMode.HALF_UP))); // Rounding HALF_DOWN System.out.println(new BigDecimal( "246.8", new MathContext(2, RoundingMode.CEILING))); // Case 3 // Across '1' digit of the input 'N' // Here, acrossings 2 digits of 4 digits of input N // Rounding HALF_UP System.out.println(new BigDecimal( "246.8", new MathContext(1, RoundingMode.HALF_UP))); // Rounding HALF_DOWN System.out.println(new BigDecimal( "246.8", new MathContext(1, RoundingMode.CEILING))); } }
246.8 2.5E+2 2.5E+2 2E+2 3E+2
Publicación traducida automáticamente
Artículo escrito por kapilnama1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA