Clase java.math.MathContext en Java

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)));
    }
}
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *