Cet article a été coécrit par Anne Schmidt
. Anne Schmidt est professeure de chimie dans le Wisconsin. Elle enseigne cette discipline au lycée depuis plus de 20 ans et sa passion consiste à proposer un enseignement accessible et éducatif sur la chimie. Sa chaine YouTube de chimie éducative compte plus de 9 000 abonnés. Anne a fait des présentations à l'American Association of Chemistry Teachers (AATC). De plus, elle est professeure adjointe de chimie générale au Northeast Wisconsin Technical College. Anne est titulaire d'une licence en chimie de l'université du Wisconsin, à Oshkosh, et d'un master en éducation secondaire et en enseignement de l'université Viterbo.
Cet article a été consulté 1 912 fois.
En langage Java, il est trois façons de diviser avec des nombres décimaux, que ce soit en opérandes ou en résultats. Ainsi, il est possible de diviser 2 entiers non divisibles et d’obtenir un résultat précis avec une virgule, tout comme il est possible de diviser 2 nombres décimaux entre eux, un entier et un nombre décimal ou l’inverse. Maintenant, si vous avez besoin de travailler avec de grands nombres ou d’avoir un résultat très précis, il faut utiliser la classe BigDecimal basée sur des virgules fixes.
Étapes
-
Modifiez le type de la division. En effet, avec Java, et ce n’est pas typique de ce seul langage !, la division de 2 entiers ( ) renvoie par défaut la seule partie entière du résultat. Si, en divisant deux entiers non divisibles vous voulez un résultat avec décimales, vous devez opérer une conversion explicite, à savoir attribuer, dans l’opération, à une des 2 valeurs le type
double
[1] X Source de recherche . Dans le code qui suit, c’est a qui se voit affecter le typedouble
:int a = 55 ; int b = 25 ; double r = ( double ) a / b // la réponse est 2.2
Publicité
-
Pour diviser 2 valeurs décimales, utilisez la division double [2] X Source de recherche . De la même façon, si l’une des deux valeurs est un entier (non décimal donc !) et si l’autre est de type double, alors le résultat est une valeur décimale. Le code ci-dessous illustre bien cette division de deux nombres décimaux :
double x = 10.5 ; double y = 2.5 ; x / y // la réponse est 4.2
-
Pour des résultats d'une grande précision, utilisez la classe BigDecimal. Avec
double
, les calculs se font avec une virgule flottante double précision, ce qui, malgré l’appellation, est finalement peu précis, car les valeurs étant stockées en 64 bits sont certes intéressantes, mais sont quand même la plupart du temps arrondies. Pour des calculs précis, il faut des valeurs à virgule fixe [3] X Source de recherche , et c’est là qu’intervient la classe JavaBigDecimal
. Vous trouverez ci-dessous une même division utilisant la classe BigDecimal avec des arrondis différents :BigDecimal bdec = new BigDecimal ( "706" ); BigDecimal bdecRes = bdec . divide ( new BigDecimal ( "20" )); System . out . println ( "Résultat : " + bdecRes ); // Division avec MathContext MathContext mc = new MathContext ( 2 , RoundingMode . FLOOR ); BigDecimal bdecMath = bdec . divide ( new BigDecimal ( "20" ), mc ); System . out . println ( "Résultat avec MathContext : " + bdecMath ); // le premier résultat sera 45,25, le second 45.
- L'énumération
RoundingMode
permet de préciser les différents types d'arrondis utilisés par BigDecimal. Les arrondis sont les suivants :UP
(arrondit en s'éloignant de 0),DOWN
(arrondit toujours vers 0),CEILING
(arrondit toujours vers ),FLOOR
(arrondit toujours vers ),HALF_UP
(arrondit vers le plus proche voisin ou en s'éloignant de 0 en cas d’égalité des distances vers les voisins),HALF_DOWN
(arrondit vers le plus proche voisin ou vers le 0 en cas d’égalité des distances vers les voisins),HALF_EVEN
(arrondit vers le plus proche voisin ou vers le voisin pair si égalité des distances vers les voisins) et enfin,UNNECESSARY
(les opérations doivent donner un résultat exact [4] X Source de recherche ).
Publicité - L'énumération
wikiHows en relation
Références
À propos de ce wikiHow
Cet article vous a-t-il été utile ?
Articles en relation
Abonnez-vous à la newsletter gratuite de wikiHow !
Des tutoriels utiles dans votre boitier de réception chaque semaine.
Je m'abonne !