El java.math.BigDecimal .subtract(BigDecimal val) se usa para calcular la diferencia aritmética de dos BigDecimals. Este método se utiliza para encontrar la diferencia aritmética de números grandes sin comprometer la precisión del resultado. Este método realiza una operación sobre el BigDecimal actual mediante el cual se llama a este método y se pasa BigDecimal como parámetro.
Hay dos sobrecargas del método de resta disponibles en Java que se enumeran a continuación:
- restar (Valor decimal grande)
- restar (valor BigDecimal, MathContext mc)
restar (Valor decimal grande)
Sintaxis:
public BigDecimal subtract(BigDecimal val)
Parámetros: este método acepta un parámetro val que es el valor que se restará de este BigDecimal.
Valor de retorno: este método devuelve un BigDecimal que contiene la diferencia (this – val) y cuya escala es max(this. scale() , val. scale() ).
Los siguientes programas se utilizan para ilustrar el método restar() de BigDecimal.
// Java program to demonstrate // subtract() method of BigDecimal import java.math.BigDecimal; public class GFG { public static void main(String[] args) { // BigDecimal object to store result BigDecimal diff; // For user input // Use Scanner or BufferedReader // Two objects of String created // Holds the values to calculate the difference String input1 = "545456468445645468464645"; String input2 = "425645648446468486486452"; // Convert the string input to BigDecimal BigDecimal a = new BigDecimal(input1); BigDecimal b = new BigDecimal(input2); // Using subtract() method diff = a.subtract(b); // Display the result in BigDecimal System.out.println("The difference of\n" + a + " \nand\n" + b + " " + "\nis\n" + diff + "\n"); } }
Producción:
La diferencia de
545456468445645468464645
y
425645648446468486486452
es
119810819999176981978193
restar (valor BigDecimal, MathContext mc)
Sintaxis:
public BigDecimal subtract(BigDecimal val, MathContext mc)
Parámetros: Este método acepta dos parámetros, uno es val que es el valor a restar de este BigDecimal y un mc de tipo MathContext.
Valor devuelto: este método devuelve un BigDecimal que tiene una diferencia (this – val), con redondeo según la configuración del contexto.
Los siguientes programas se utilizan para ilustrar el método restar() de BigDecimal.
// Java program to demonstrate // subtract() method of BigDecimal import java.math.*; public class GFG { public static void main(String[] args) { // BigDecimal object to store result BigDecimal diff; // For user input // Use Scanner or BufferedReader // Two objects of String created // Holds the values to calculate the difference String input1 = "468445645468464645"; String input2 = "4256456484464684864864"; // Convert the string input to BigDecimal BigDecimal a = new BigDecimal(input1); BigDecimal b = new BigDecimal(input2); // Set precision to 10 MathContext mc = new MathContext(10); // Using subtract() method diff = a.subtract(b, mc); // Display the result in BigDecimal System.out.println("The difference of\n" + a + " \nand\n" + b + " " + "\nis\n" + diff + "\n"); } }
Producción:
La diferencia de
468445645468464645
y
4256456484464684864864
es
-4.255988039E+21
Referencias: https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#subtract(java.math.BigDecimal)