Bonjour,
tout est dans le sujet,
mais je ne comprends pas
cette fonction fonctionne tres bien sur des petits chiffres mais
par exemple
ceci
me renvoit 2147483647Code:strtol("2804336640000",NULL,10);
pourquoi diable?
Merci de votre aide,
Version imprimable
Bonjour,
tout est dans le sujet,
mais je ne comprends pas
cette fonction fonctionne tres bien sur des petits chiffres mais
par exemple
ceci
me renvoit 2147483647Code:strtol("2804336640000",NULL,10);
pourquoi diable?
Merci de votre aide,
C'est tout simplement car 2804336640000 est superieur a la valeur maximale pouvant etre stockee dans un longCitation:
Envoyé par drpark
Ah ok...
Merci...
je suis donc dans la merde :D
Cette valeur est invalide car errno n'est pas nul.Citation:
Envoyé par drpark
ProduitCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <stdio.h> #include <errno.h> int main(void) { long n = strtol("2804336640000",NULL,10); if (errno) { perror("strtol"); } else { printf ("n = %ld\n", n); } return 0; }
Visiblement, il y a dépassement de capacité. La valeur à convertir est > LONG_MAX (<limits.h>).Code:strtol: Result too large