L'exemple de cet article décrit l'utilisation simple de la classe BigDecimal en Java. Il s'agit d'une compétence très pratique en programmation Java. Elle est partagée avec tout le monde pour votre référence. L’analyse spécifique de l’utilisation est la suivante :
De manière générale, lorsqu'il s'agit de calculs métier en Java, nous savons tous que float et double ne peuvent pas être utilisés car ils ne peuvent pas effectuer de calculs précis. Cependant, les concepteurs de Java fournissent aux programmeurs une classe BigDecimal très utile, qui peut améliorer les défauts des classes float et double qui ne peuvent pas effectuer des calculs précis. La classe BigDecimal se trouve sous le package de classe java.maths. Voyons d'abord comment construire un objet BigDecimal. Il possède de nombreux constructeurs. Voici les deux constructeurs les plus couramment utilisés pour démontrer : l'un est BigDecimal (double val) et l'autre est BigDecimal (String str). Il ne semble pas y avoir beaucoup de différence entre les deux, mais comme le dit la description de l'API :
/*Les résultats de ce constructeur peuvent être quelque peu imprévisibles. On pourrait supposer que new BigDecimal(.1) est exactement égal à .1, mais il est en réalité égal à .1000000000000000055511151231257827021181583404541015625. Cela est dû au fait que .1 ne peut pas être représenté exactement comme un. double (ou, pour cela matière, comme une fraction binaire de toute longueur finie). Ainsi, la valeur longue qui est transmise au constructeur n'est pas exactement égale à 0,1, malgré les apparences. Le constructeur (String), en revanche, est parfaitement prévisible. : new BigDecimal(".1") est exactement égal à .1, comme on pouvait s'y attendre. Par conséquent, il est généralement recommandé d'utiliser le constructeur (String) de préférence à celui-ci.*/C'est-à-dire qu'un constructeur utilisant double comme paramètre ne peut pas construire avec précision un objet BigDecimal. Vous devez spécifier un environnement contextuel, c'est-à-dire spécifier le bit précis. Le constructeur qui utilise un objet String comme paramètre peut construire avec précision un objet BigDecimal. Veuillez regarder le code ci-dessous :
importer java.math.*;public class TestBigDecimal { public static void main(String args[]){ BigDecimal bd = new BigDecimal("10.123"); "/n"+ bd1); }}Sortie après exécution :
10.123
10.12299999999999993320898283855058252811431884765625
Par conséquent, lorsque nous choisissons un constructeur, cela dépend des besoins spécifiques.
De plus, de nombreuses personnes se demanderont comment convertir les types de base, tels que les objets int, float, double, long et BigDecimal, les uns vers les autres. Très simple :
Les types de base sont convertis en objets BigDecimal correspondants via des constructeurs, et la classe BigDecimal fournit des méthodes telles que intValue(), floatValue(), doubleValue() et longValue() pour convertir les objets BigDecimal en valeurs correspondantes.
Concernant la façon dont BigDecimal est calculé, j'ai pris comme exemple la question d'une personne sur le forum pour écrire brièvement la méthode de calcul de BigDecimal. Le sujet est le suivant : Li Bai marchait dans la rue sans incident, portant un pot pour acheter du vin. Lorsque vous rencontrez un magasin, vous doublez la quantité, lorsque vous voyez des fleurs, vous buvez un dou. Lorsque vous rencontrez des fleurs et un magasin, vous buvez tout le vin dans le pot. Combien de dou de vin y a-t-il dans le pot de Li Bai. ?
Cette question doit être avancée d'arrière en avant, et le calcul doit être inversé, et enfin le volume du vin d'origine peut être obtenu.
import java.math.*;public class Libai { public static void main(String args[]){ BigDecimal volume = new BigDecimal("0"); for (int i=0; i<5; i++){ volume = volume .add(new BigDecimal("1")); volume = volume.divide(new BigDecimal("2")); System.out.print(volume); }}Résultats en cours d'exécution :
0,96875
J'espère que ce que décrit cet article sera utile à l'apprentissage de la programmation Java par chacun.