Maison > développement back-end > C++ > Pourquoi `pow(5, 2)` renvoie-t-il 24 au lieu de 25 ?

Pourquoi `pow(5, 2)` renvoie-t-il 24 au lieu de 25 ?

Linda Hamilton
Libérer: 2024-12-06 05:11:14
original
591 Les gens l'ont consulté

Why Does `pow(5, 2)` Return 24 Instead of 25?

Pourquoi pow(5, 2) renvoie-t-il 24 ?

Dans votre programme de calculatrice, vous êtes confronté à un comportement inattendu avec la puissance fonction. Alors que vous vous attendez à ce que 5^2 soit égal à 25, pow(5, 2) renvoie 24. Cet écart est dû à la gestion du type de données de la fonction pow().

La fonction pow() renvoie un flottant- numéros de points. Dans votre cas spécifique, pow(5, 2) renvoie en fait 24,99997 ou une valeur à virgule flottante similaire. Cependant, puisque vous attribuez le résultat à une variable entière, il est tronqué à l'entier le plus proche, ce qui donne 24.

Pour résoudre ce problème, il y a deux considérations :

  1. Arrondi ou troncature : Pour la fonction puissance, il convient d'arrondir le résultat en virgule flottante à la valeur entier le plus proche. Cela garantit la précision sans introduire d’erreurs d’arrondi. Vous pouvez y parvenir en ajoutant 0,5 au résultat avant de l'attribuer à la variable entière :

    int answer;
    answer = pow(number1,number2)+0.5;
    Copier après la connexion
  2. Racine carrée : D'autre part, attribuer les résultats de racine carrée à un un entier n’est généralement pas recommandé. Les racines carrées comportent souvent des décimales et leur troncature peut entraîner une perte de précision importante. Il est préférable de conserver les racines carrées sous forme de valeurs à virgule flottante pour des calculs plus précis.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal