Java BigDecimal

Java BigDecimal
El uso de formatos de datos de punto flotante en los cálculos financieros está restringido debido a su inexactitud. Es por eso que Java tiene una clase especial llamada BigDecimal para reducir estos problemas. El BigDecimal es de enteros de 32 bits para manejar números de punto flotante que contienen grandes valores dobles y extremadamente pequeños con una precisión notable. La clase BigDecimal ofrece métodos para la manipulación, conversión de formato, hashing, redondeo, comparación y aritmética. Algunos métodos de clase de BigDecimal se implementan a continuación.

Ejemplo 1:

BigDecimal es efectivo para representar un número de tamaño casi infinito. BigDecimal contiene los valores flotantes más grandes, mientras que el biginteger toma los grandes valores de número. El programa se implementa a continuación para mostrar la funcionalidad del BigDecimal en Java.

Primero hemos incluido los paquetes "BigDecimal" y "BigInteger" dentro del programa Java. Luego, declaramos el objeto de BigInteger como "Val1" y el objeto BigDecimal como "Val2". Hemos asignado el valor entero largo al objeto "val1" de la clase biginteger () y el valor del punto flotante al objeto "val2" de la clase bigDecimal (). Después de eso, imprimimos ambos valores para lograr los resultados.

Los resultados de los valores Biginteger y BigDecimal se ejecutan de la siguiente manera:

Ejemplo 2:

BigDecimal solo permite enteros de precisión arbitraria de números de punto fijo. Tengamos un programa Java donde las operaciones aritméticas se realizan en dos grandes enteros decimales importantes.

Hemos definido dos objetos BigDecimal que están etiquetados como "NUM1" y "NUM2". Estos objetos BigDecimal se inicializan con grandes valores decimales. Luego, aplicamos la operación de adición, resta y multiplicación en estos objetos utilizando los métodos agregue (), rect () y multiplicar (), respectivamente. Tenga en cuenta que el primer objeto "num1" de BigDecimal llamó el método y el segundo objeto "num2" pasó como un argumento de ese método.

Los siguientes resultados se logran aplicando los métodos anteriores a los valores BigDecimal.

Ejemplo 3:

La operación de comparación no se puede realizar en valores BigDecimal utilizando los operadores de comparación. Como, BigDecimal está restringido a los tipos de datos int, largos y dobles. Java tiene un método comparado () incorporado para comparar valores bigdecimales.

Tenemos una declaración de objeto BigDecimal "Big1" y "Big2" dentro del método Main () de la clase Java especificada. Después de declarar los objetos, establecemos los valores decimales en ellos. Luego, utilizamos el bloque anidado "if-else" para comparar el objeto BigDecimal usando el método comparto (). Si tanto el objeto BigDecimal es igual, entonces se devuelve el cero y se ejecutará la instrucción de impresión de la sección "Si". De lo contrario, el método CompareTo () devuelve el valor "1" cuando el BigDecimal contiene diferentes valores. Verificamos los resultados de retorno del método CompareTo () para los valores decimales proporcionados en la clase BigDecimal () a través de la declaración IF-Else anidada.

El valor del método comparto () es igual al valor "1" que muestra que los números de flotación pasados ​​en la clase BigDecimal () no son iguales. El mensaje de impresión "else-if" se muestra a continuación.

Ejemplo 4:

Java tiene otro bytevalueeExact BigDecimal incorporado para la conversión de BigDecimal a un byte mientras busca datos perdidos. Este método arroja una aritmeticexception cuando el BigDecimal tiene una parte fraccional que no es cero, o si el resultado está más allá del rango que puede almacenarse por un byte.

Hemos utilizado el método bytevalueExact () en el programa anterior. Para esto, hemos declarado la variable "BigDec" de BigDecimal. Luego, definimos una variable "b" de tipo byte. Hemos establecido el valor dentro de la clase BigDecimal () que se inicializa dentro de la variable "BigDec". A continuación, invocamos el bytevalueAxact () en la variable "B" para obtener el valor de byte del valor BigDecimal. El valor de byte devuelto de este método se imprimirá con la ayuda del método de impresión Java.

El valor de byte del método bytevalueexact () es el mismo que el valor de entrada bigDecimal porque el número no contiene un punto decimal.

Ejemplo 5:

Los valores máximos y mínimos de los valores bigDecimales especificados se pueden lograr utilizando los métodos max () y min () ya que estos métodos son compatibles con la clase BigDecimal.

Hemos generado tres objetos BigDecimal como "B1", "B2" y "B3" para obtener el valor mínimo y los valores máximos de estos. Junto con las declaraciones de estos objetos, también hemos creado dos objetos más "Maxval1" y "Maxval2". Primero, pasamos los números BigDecimal a cada uno de los objetos. Dentro del "maxval1", el objeto "b1" se llama método max () que toma el objeto "b2" como parámetro. De la misma manera, hemos establecido el "MaxValue2" pero hemos implementado el método "Min ()" para encontrar los valores mínimos entre "B1" y "B3". El método max () mostró el valor BigDecimal más grande y el método Min () mostró el valor BigDecimal más pequeño.

El valor BigDecimal de "B2" contiene el valor máximo en comparación con el "B1" que el método max () emite a continuación. Lo mismo es el caso del método min () que muestra el valor BigDecimal "B3" porque tiene un valor mínimo de "B1".

Ejemplo 6:

El método Pow () de BigDecimal se utiliza para obtener el valor de potencia del valor BigDecimal proporcionado. Un BigDecimal con el valor (esto norte) se devuelve del método pow ().

Hemos especificado los objetos BigDecimal "BD1" y "BD2". En el objeto "BD1", hemos asignado el valor del BigDecimal que contiene el punto decimal. Luego, aplicamos el método pow () en el objeto "bd1" dentro del objeto "bd2". El método Pow () se establece con el valor "3" que devuelve el poder de "3" para el valor BigDecimal.

El valor BigDecimal elevado al poder "3" tiene el siguiente valor:

Ejemplo 7:

El último método BigDecimal implementado a continuación se llama escala (). Se utiliza para obtener el valor de escala del BigDecimal proporcionado. La escala de un valor cero o positivo está determinada por el número de dígitos que se colocan a la derecha del punto decimal. Cuando un valor es negativo, el número sin escalar se multiplica por la negación de poder de la negación de su escala de valor "10".

Hemos dado un valor flotante positivo al BigDecimal que se inicializa en la variable "DECI1". Por otro lado, hemos establecido el valor flotante negativo del BigDecimal en el objeto "DECI2". Luego, hemos llamado el método "escala ()" para el objeto Deci1 y Deci2 dentro de las variables recientemente declaradas "S1" y "S2" para obtener la escala de estos bigdecimals BigDecimals.

El valor decimal en el lado derecho de BigDecimal positivo es "1", por lo que la escala también es "1". La escala del BigDecimal negativo es "3".

Conclusión

Java BigDecimal es un método para representar con precisión el número. Los pocos métodos asociados con el BigDecimal se exploran en este documento. BigDecimal evitaría que la diferente escala del valor doble cuando se trata con el doble más pequeño se puede eliminar de la suma debido a la variación en la escala. Esta es una ventaja de la clase BigDecimal, pero el inconveniente de BigDecimal es que hace que sea más complicado crear algoritmos.