Maison >développement back-end >C++ >Pourquoi la double précision semble-t-elle avoir plus de décimales que les 15 annoncées ?

Pourquoi la double précision semble-t-elle avoir plus de décimales que les 15 annoncées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-06 20:40:18574parcourir

Why Does Double Precision Appear to Have More Decimal Places Than Its Advertised 15?

Double précision et précision des décimales

En programmation informatique, le type de données à double précision est souvent supposé avoir une précision approximative de 15 décimales. Cependant, certaines représentations numériques, telles que 1,0/7,0, semblent avoir plus de précision lorsqu'elles sont représentées en interne dans la variable. Cet article explorera pourquoi cela se produit et pourquoi la précision est souvent décrite comme étant d'environ 15 décimales.

Représentation interne

Un double IEEE a 53 bits significatifs, soit environ 15,95 chiffres décimaux. Pour tenir compte des arrondis, l'implémentation définit la précision (DBL_DIG) sur 15. Cela fournit presque un chiffre décimal supplémentaire de précision au-delà de ce qu'implique DBL_DIG.

Précision de sortie

Lors de l'affichage d'un double, les compilateurs arrondissent généralement la valeur en fonction de la précision. Par exemple, 1.0/7.0, lorsqu'il est affiché avec « %.17g », a une précision de 17 chiffres. Cependant, si "%.64g" est utilisé, aucun chiffre significatif n'apparaît au-delà de la précision attendue de 15 chiffres.

Conclusion

Les nombres à double précision ont une représentation interne qui autorise environ 15,95 chiffres décimaux. de précision. Cependant, en raison des arrondis, la précision affichée est généralement fixée à 15 décimales. Cette explication permet de clarifier pourquoi certains nombres exacts, comme 1.0/7.0, semblent avoir plus de précision en interne mais restent conformes à la précision estimée à 15 chiffres lorsqu'ils sont affichés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn