Je pense qu'il existe de nombreuses situations où java est utilisé dans le travail de développement. Je pense que Big Decimal peut être utilisé lors de la construction de la logique de calcul. Du coup, c'est un type différent des entiers ordinaires, donc j'étais confus, alors j'ai décidé de le laisser dans l'article.
https://docs.oracle.com/javase/jp/8/docs/api/java/math/BigDecimal.html> Depuis oracle.docs Non, je ne comprends pas vraiment même si c'est dit mathématiquement. .. .. Donc, en d'autres termes ... Des résultats imprévus peuvent être obtenus dans le cas de calculs où les flottants et les doubles provoquent des erreurs. Par exemple
double.java
double result = 10d / 6d;
System.out.println(result)
//Sortie 1.6666666666666666666666666666666666666666
C'est comme ça. Comme vous le savez peut-être, si vous voulez calculer "l'arrondi bancaire", l'exemple ci-dessus est trop irrégulier et vous aurez des ennuis. C'est là qu'intervient Big Decimal. Il est souvent utilisé pour calculer des systèmes dits comptables.
BigDecimal est différent du calcul de nombre normal et se calcule comme suit.
BigDecimalCalc.java
//Lors de la division de 1000 de type BigDecimal par 100 de type int
BigDecimal bigNum = BigDecimal.valueOf(1000);
BigDecimal result = bigNum.divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
System.out.println(result);
Utilisez une méthode spéciale pour diviser. Normal / ne peut pas être utilisé. Voir oracle.docs pour plus de détails.
Comment gérer 0 de Big Decimal dans le branchement conditionnel, etc. J'y suis accro si je n'y suis pas habitué. Bien sûr, j'en étais accro car je suis aussi un débutant.
ZeroCompare.java
if(Valeur à comparer.compareTo(BigDecimal.ZERO) == 0) {
//・ ・ ・
}
On dirait. En d'autres termes, il n'y a pas de différence par rapport à 0, donc 0! Ce sera une comparaison. Au fait, si c'est 0 ou plus ou 0 ou moins
Compare.java
ZeroCompare.java
if(Valeur à comparer.compareTo(BigDecimal.ZERO) > 0) {
//・ ・ ・
}
Faire.
BigDecimal est utilisé différemment des types primitifs. Il faut en être conscient. Surtout pour les débutants en Java comme moi, il est difficile d'utiliser accidentellement des flottants et des doubles lorsque vous devez effectuer des calculs précis dans un travail de développement réel, ou utiliser BigDecimal de manière incorrecte et provoquer des erreurs de compilation. Ne fais pas ça. Vous ne vous en souciez généralement pas beaucoup, mais dans le cas du travail, j'aimerais écouter attentivement le but de la logique de calcul à développer et la précision requise avant de commencer le développement [Réflexion]
Recommended Posts