Bonjour,
J'ai un léger souci avec la fonction pow de la lib math.h :
Le but est de convertir un string de type char, ne contenant que des chiffres au nombre que forment l'ensemble des chiffres.
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
19
20
21
22
23
24
25 #include <stdio.h> #include <windows.h> #include <math.h> unsigned int ConvertOneIntCharToItsValue(char c) { return c - '0'; } unsigned int ConvertCharNumberStringToInteger(char s[]) { size_t count = 0; int nbr_pow = strlen(s)-1; unsigned int Res = 0; while (count < strlen(s)) Res += ConvertOneIntCharToItsValue(s[count++])*((int)pow(10, nbr_pow--)); return (Res); } int main () { printf("%d\n", ConvertCharNumberStringToInteger("12000")); return(0); }
Seulement, pour toutes les puissances paires, je n'obtiens pas le bon résultat.
Par exemple, pour pow(10, 2), il m'affiche 99 au lieu de 100.
J'ai testé en dehors de la fonction, j'obtiens bien 100, mais dans ma boucle while, j'obtiens toujours -1 par rapport au résulat attendu pour les puissances de 2, soit 99 au lieu de 100, 9999 au lieu de 10000 etc.
Sauriez-vous pourquoi ?
Merci par avance.
Partager