Java bigdecimal

Java bigdecimal
L'utilisation des formats de données à virgule flottante dans les calculs financiers est limitée en raison de leur inexactitude. C'est pourquoi Java a une classe spéciale appelée BigDecimal pour réduire ces problèmes. Le BigDecimal a des entiers 32 bits pour gérer les nombres de points flottants qui contiennent de grandes valeurs doubles et extrêmement faible avec une précision remarquable. La classe BigDecimal propose des méthodes de manipulation, de conversion de format, de hachage, d'arrondi, de comparaison et d'arithmétique. Certaines méthodes de classe de BigDecimal sont mises en œuvre ci-dessous.

Exemple 1:

BigDecimal est efficace pour représenter un nombre de taille presque infinie. Le BigDecimal contient les valeurs flottantes plus grandes tandis que le BigInteger prend les valeurs de grand nombre. Le programme est mis en œuvre ci-dessous pour montrer la fonctionnalité du BigDecimal en Java.

Nous avons d'abord inclus les forfaits «BigDecimal» et «BigInteger» à l'intérieur du programme Java. Ensuite, nous avons déclaré l'objet de BigInteger comme «VAL1» et l'objet BigDecimal comme «VAL2». Nous avons attribué la longue valeur entière à l'objet «Val1» de la classe BigInteger () et la valeur du point flottant à l'objet «Val2» de la classe BigDecimal (). Après cela, nous avons imprimé les deux valeurs pour accomplir les résultats.

Les résultats des valeurs BigInteger et BigDecimal sont exécutés comme suit:

Exemple 2:

BigDecimal permet uniquement aux entiers de précision arbitraire de nombres à point fixe. Ayons un programme Java où les opérations arithmétiques sont effectuées sur deux grands entiers décimaux importants.

Nous avons défini deux objets BigDecimal qui sont étiquetés «num1» et «num2». Ces objets BigDecimal sont initialisés avec de grandes valeurs décimales. Ensuite, nous avons appliqué l'addition, la soustraction et le fonctionnement de la multiplication sur ces objets en utilisant les méthodes ADD (), soustraire () et multiplier (), respectivement. Notez que le premier objet «num1» de BigDecimal a appelé la méthode et que le deuxième objet «num2» a passé comme argument de cette méthode.

Les résultats suivants sont obtenus en appliquant les méthodes ci-dessus aux valeurs BigDecimal.

Exemple 3:

L'opération de comparaison ne peut pas être effectuée sur des valeurs BigDecimal à l'aide des opérateurs de comparaison. AS, BigDecimal est limité aux types de données int, longs et doubles. Java a une méthode compareto () intégrée pour comparer les valeurs BigDecimal.

Nous avons une déclaration BigDecimal «Big1» et «Big2» dans la méthode principale () de la classe Java spécifiée. Après avoir déclaré les objets, nous y avons réglé les valeurs décimales. Ensuite, nous avons utilisé le bloc «if-else» imbriqué pour comparer l'objet BigDecimal en utilisant la méthode compareto (). Si les deux objets BigDecimal sont égaux, alors le zéro est retourné et que l'instruction imprimée de la section «IF» sera exécutée. Sinon, la méthode compareto () renvoie la valeur «1» lorsque le BigDecimal contient différentes valeurs. Nous avons vérifié les résultats de retour de la méthode compareto () pour les valeurs décimales fournies dans la classe BigDecimal () via une déclaration if-else imbriquée.

La valeur de la méthode compareto () est égale à la valeur «1» qui montre que les nombres flottants passés dans la classe BigDecimal () ne sont pas égaux. Le message d'impression «else-if» s'affiche ci-dessous.

Exemple 4:

Java a un autre bigdecimal ByteValueExact intégré pour la conversion du BigDecimal en un octet tout en recherchant des données perdues. Cette méthode lance une arithmeticexception lorsque le bigDecimal a une partie fractionnaire qui n'est pas nulle, ou si le résultat est au-delà de la plage qui peut être stockée par un octet.

Nous avons utilisé la méthode ByteValueExact () dans le programme ci-dessus. Pour cela, nous avons déclaré la variable «Bigdec» de BigDecimal. Ensuite, nous avons défini une variable «B» d'octet de type. Nous avons réglé la valeur dans la classe BigDecimal () qui est initialisée à l'intérieur de la variable «Bigdec». Ensuite, nous avons invoqué le bytevalueExact () dans la variable «B» pour obtenir la valeur d'octet de la valeur BigDecimal. La valeur d'octet renvoyée de cette méthode sera imprimée à l'aide de la méthode Java Imprimer.

La valeur d'octet à partir de la méthode bytevalueExact () est la même que la valeur BigDecimal d'entrée car le nombre ne contient aucun point décimal.

Exemple 5:

Les valeurs maximales et minimales des valeurs BigDecimal spécifiées peuvent être réalisées en utilisant les méthodes max () et min () car ces méthodes sont compatibles avec la classe BigDecimal.

Nous avons généré trois objets BigDecimal en tant que «B1», «B2» et «B3» pour obtenir la valeur minimale et les valeurs maximales à partir de celles-ci. En plus des déclarations de ces objets, nous avons également créé deux autres objets «MaxVal1» et «MaxVal2». Tout d'abord, nous avons transmis les nombres BigDecimal à chacun des objets. Dans le «MaxVal1», l'objet «B1» est appelé la méthode max () qui prend l'objet «B2» en tant que paramètre. De la même manière, nous avons défini le «MaxValue2», mais nous avons déployé la méthode «min ()» pour trouver les valeurs minimales entre «B1» et «B3». La méthode max () affichait la plus grande valeur BigDecimal et la méthode min () affichait la plus petite valeur BigDecimal.

La valeur BigDecimal de «B2» contient la valeur maximale par rapport au «B1» que la méthode max () sort ci-dessous. Il en va de même pour la méthode min () qui affiche la valeur BigDecimal «B3» car elle a une valeur minimale de «B1».

Exemple 6:

La méthode POW () de BigDecimal est utilisée pour obtenir la valeur de puissance de la valeur BigDecimal fournie. Un bigDecimal avec la valeur (ce n) est renvoyé de la méthode POW ().

Nous avons spécifié les objets BigDecimal «BD1» et «BD2». Dans l'objet «BD1», nous avons attribué la valeur du BigDecimal qui contient le point décimal. Ensuite, nous avons appliqué la méthode POW () sur l'objet «BD1» dans l'objet «BD2». La méthode POW () est définie avec la valeur «3» qui renvoie la puissance de «3» pour la valeur BigDecimal.

La valeur BigDecimal soulevée à la puissance «3» a la valeur suivante:

Exemple 7:

La dernière méthode BigDecimal implémentée ci-dessous est appelée échelle (). Il est utilisé pour obtenir la valeur d'échelle du BigDecimal fourni. L'échelle d'une valeur nulle ou positive est déterminée par le nombre de chiffres placés à droite du point décimal. Lorsqu'une valeur est négative, le nombre non adapté est multiplié par la puissance de la valeur de la valeur «10» de la négation de son échelle.

Nous avons donné une valeur flottante positive au BigDecimal qui est initialisé dans la variable «DECI1». D'un autre côté, nous avons réglé la valeur flottante négative du BigDecimal dans l'objet «DECI2». Ensuite, nous avons appelé la méthode «Scale ()» pour l'objet DECI1 et Deci2 dans les variables nouvellement déclarées «S1» et «S2» pour obtenir l'échelle de ces BigDecimals.

La valeur décimale du côté droit du BigDecimal positif est «1», donc l'échelle est également «1». L'ampleur du BigDecimal négatif est «3».

Conclusion

Java Bigdecimal est une méthode pour représenter précisément le nombre. Les quelques méthodes associées au BigDecimal sont explorées dans ce document. BigDecimal empêcherait l'échelle différente de la double valeur lors de la gestion du double plus petit peut être retiré de la somme due à la variation de l'échelle. C'est un avantage de la classe BigDecimal, mais l'inconvénient de BigDecimal est qu'il est plus compliqué de créer des algorithmes.