JavaRush /Blog Java /Random-FR /Un peu plus sur les nombres BigDecimal
grishin
Niveau 27
Харьков

Un peu plus sur les nombres BigDecimal

Publié dans le groupe Random-FR
Enfin, après une pause de 3 mois, je reprends les cours. J'ai fait une pause début janvier. J'ai ensuite décidé de m'orienter vers d'autres disciplines, comme HTML/CSS/Javascript. En chemin, j'ai commencé à apprendre les technologies (servlets et JSP). A cette époque, j'avais complété 24 niveaux et j'étais un peu coincé dans les cours internes - non pas que rien n'était clair, c'était juste qu'il fallait systématiser les connaissances acquises, car trop de connaissances avaient été acquises en peu de temps. en mode « galop à travers l’Europe ». J'ai donc maintenant décidé de parcourir attentivement le premier volume de Horstman pour consolider mes connaissances de Java Core et en même temps terminer les tâches restantes des niveaux précédents, puis passer d'un niveau à l'autre. J'ai commencé avec le problème bonus du niveau 15 sur le factoriel. Après avoir réglé ce problème, j'ai décidé d'examiner de plus près la classe BigDecimal. Je n'ai trouvé aucun article particulièrement populaire sur Internet, j'ai donc consulté la documentation et le premier paragraphe m'a immédiatement fait penser que, d'une manière ou d'une autre, tout n'était pas clair. J'ai décidé d'aller au fond de la vérité, et pour que mon travail ne soit pas vain, j'ai tout formaté sous la forme d'un article et maintenant je le publie dans la communauté pour un échange d'opinions, et peut-être que ce sera le cas. être utile à quelqu'un. J'ai donc pris le premier paragraphe et je l'ai divisé en phrases. Il ne contient que 5 phrases. Les phrases numéro 3 et 4 ont été soulignées et déplacées à la fin du paragraphe (pourquoi j'ai fait cela - continuez à lire). Et la traduction a été faite en conséquence dans cet ordre modifié. Premier paragraphe original
  1. Nombres décimaux signés immuables et de précision arbitraire.
  2. Un BigDecimal se compose d’une valeur entière non mise à l’échelle de précision arbitraire et d’une échelle entière de 32 bits.
  3. Si zéro ou positif, l'échelle est le nombre de chiffres à droite de la virgule décimale.
  4. Si elle est négative, la valeur non mise à l'échelle du nombre est multipliée par dix à la puissance la négation de l'échelle.
  5. La valeur du nombre représenté par BigDecimal est donc ( unscaledValue × 10 -scale ).
Original avec ordre des phrases réorganisé
  1. Nombres décimaux signés immuables et de précision arbitraire.
  2. Un BigDecimal se compose d’une valeur entière non mise à l’échelle de précision arbitraire et d’une échelle entière de 32 bits.
  3. La valeur du nombre représenté par BigDecimal est donc ( unscaledValue × 10 -scale ).
  4. Si zéro ou positif, l'échelle est le nombre de chiffres à droite de la virgule décimale.
  5. Si elle est négative, la valeur non mise à l'échelle du nombre est multipliée par dix à la puissance la négation de l'échelle.
Traduction étendue (chaque point de la traduction correspond à un point de l'original)
  1. Ce sont des nombres décimaux fractionnaires 1 immuables avec le signe 2 , de longueur arbitraire 34 .
  2. Le nombre BigDecimal est spécifié par deux paramètres. Le premier d'entre eux, le soi-disant. la valeur non mise à l'échelle est un entier de longueur illimitée. Connaissant uniquement ce paramètre, on ne peut rien dire sur la valeur réelle du nombre BigDecimal. Pour ce faire, vous devez connaître le deuxième paramètre - un entier de 32 bits appelé échelle.
  3. Ensuite, la valeur du nombre BigDecimal peut être calculée à l'aide de la formule suivante : unscaledValue × 10 -scale
  4. Si BigDecimal est nul ou positif, l'échelle est le nombre de chiffres après la virgule décimale.
  5. Si BigDecimal est négatif, sa valeur non mise à l'échelle est multipliée par 10 élevée à une puissance égale à l'échelle avec un signe moins.
Notes de traduction
1. Fractionnel, car la « précision arbitraire » inclut, entre autres,
   que ce sont des nombres exacts, et que les nombres exacts doivent avoir une virgule décimale,
   en d'autres termes - fractionnaire.
2. C'est peut être à la fois positif et négatif.
3. Longueur arbitraire, car « précision arbitraire » signifie aussi
   "Un nombre arbitraire de chiffres."
4. En fait, les nombres BigDecimal sont des nombres réels. Mais installer
   différents paramètres, vous pouvez les utiliser non seulement dans des calculs scientifiques,
   et aussi sur le plan financier.
Donc, les phrases soulignées étaient pour moi le principal facteur de confusion - en fait, je les supprimerais simplement du texte, car en fait, elles parlent de la même chose, et en plus, elles parlent de la même chose que celle dite dans la phrase numéro 5. Ceux. trois phrases consécutives disent seulement que la valeur non mise à l'échelle est multipliée par 10 élevée à une puissance égale à l'échelle avec un signe moins. C'est déroutant lorsque vous le lisez pour la première fois, car en lisant la phrase numéro 3, vous comprenez que puisqu'il y a si, cela signifie qu'il y aura une chose ici, et dans la phrase suivante autre chose. Mais non, les deux phrases disent la même chose, mais avec des mots différents. Eh bien, la troisième (dernière du paragraphe) phrase consécutive sur la même chose ressemble probablement à un tir de contrôle. On ne sait pas pourquoi le texte a été compilé de manière aussi confuse, car la formule unscaledValue × 10 -scale de la dernière phrase donne la définition d'un grand nombre aussi clairement, sans ambiguïté et de manière complète que possible.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION