Bonjour, mon souci est le suivant : je suis vraiment débutant en C et j'ai codé un minuscule programme pour obtenir le résultat d'un nombre choisi par l'utilisateur élevé à une puissance choisie aussi par l'utilisateur, en l'occurrence, moi.
Pourquoi lorsque je fais effectué le calcul, avec de petits nombre le résultat est juste. Mais quand je fais l'essai avec un grand nombre avec une puissance assez grande, le résultat obtenu est arrondi avec des zéros passé le 17eme chiffre ?
Exemple: 273^8=30853268336830129281 avec la calculatrice Windows.
273^8=30853268336830128000 avec mon code !!! ???
Pourquoi cet arrondi ? Il y a t' il un moyen de remédier à ce problème ? Merci d'avance.
Le code utilisé est très simple, le voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double nombre=0,puissance =0,resultat=0; printf(" Entre un nombre "); scanf("%lf",&nombre); printf("Entre une puissance "); scanf("%lf",&puissance); resultat = pow(nombre,puissance); printf("pow egale %.0lf",resultat); // %.0lf pour supprimer les zéros après la virgule dus aux doubles utilisés return 0; }
Partager