Comversion de chaine en grand nombre et calcul

Résolu
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 18 nov. 2005 à 11:38
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 18 nov. 2005 à 14:19
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

cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
18 nov. 2005 à 14:19
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
3
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
18 nov. 2005 à 13:43
atoi() pour ASCII to Integer

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