Comversion de chaine en grand nombre et calcul [Résolu]

Signaler
Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
-
Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
-
Bonjour à tous,

Il me faut convertir une string de 10 caractères numériques en entier et faire des opérations ensuite, mais ça ne marche pas...

(val est une chaine de 12 caractères initialisée à 107252372255)



,
----

int cle,res1,res2,res3;
float code,reste;
char strTmp[11]="";

strncpy(strTmp,val,10); // Extraire les 10 premiers
sscanf(strTmp,"%f",&code); // Stocker le code en numérique
printf("0>(%f)<",code); // Affiche 1072523712.000 (au lieu de 1072523722.000) ERREUR 1
reste = code/100;
printf("1>(%f)<",reste); // Affiche 10725237.000 (OK)
res1 = code-(100*reste);
res2 = reste-(17*(code/1700));
res3 = ((res1+res2)%100);
printf("2>(%d)(%d)(%d)<",res1,res2,res3); // Affiche (0)(0)(0) // ERREUR 2
while(!kbhit());

Comment faire ?

David, à VERSAILLES

2 réponses

Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
1
En fait, j'ai trouvé, il faut faire des conversions pas possibles:

reste100 = (long)(code/100);
reste1700 = (long)(code/1700);
res1 = (int)(code-(100*((double)reste100)));
res2 = (int)(reste100-(17*reste1700));
res3 = ((res1+res2)%100);

David, à VERSAILLES
Messages postés
15063
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 juin 2021
95
atoi() pour ASCII to Integer

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...