[C] conversion de short int en double!!

conversion de short int en double!! [C] - Programmation

Marsh Posté le 20-05-2001 à 15:41:50    

Voila a partir d'un fichier je stocke dans un tableau de finit en short int des entiers.
JE desirerais convertir ce tableau d'entier en tableau de double.
j'aie essayer ceci mais ca marche pas!
 
for (j=0;j<nm;j=j+1)
for (i=0;i<nm;i=i+1)
tabint[i][j]=(double)tabint[i][j];
 
je dois le faire car apres je fais un produit matricielle avec un autre tableau qui lui est en double mais dans ma fonction qui fais le produit matricielle les paramettre sont definit en double.
La convercion implicite ne marche pas non plus j'aie tout le temps  le resultat NAN (Not A Number)
 
QUE FAIRE!!
Merci de m'aider
@+


---------------
http://www.programmation-fr.com
Reply

Marsh Posté le 20-05-2001 à 15:41:50   

Reply

Marsh Posté le 20-05-2001 à 15:45:37    

SI ton ton tableau tabint est défini en tant que tableau d'entiers, c'est normal que tu ne puisses qu'y stocker des entiers...
Il faudrait que tu crées un autre tableau, mais de double, pour y stocker des doubles.

Reply

Marsh Posté le 20-05-2001 à 16:49:09    

Lors je recifie mon problem.
Mon tableau est bien definit en double mais dans ma boucle de stockage de données j'aie:
fscanf(fis,"%hd",&tab[nm][nm]);
Et si je met:
fscanf(fis,"%lf",&tab[nm][nm]);
ca ne marche pas car cela ne stocke pas les bons nombres dans le tableaus.
Ca ne stocke d'ailleur rien du tout!
QUE FAIRE  
MARCI
@+


---------------
http://www.programmation-fr.com
Reply

Marsh Posté le 20-05-2001 à 21:34:21    

C'est pas la meilleure reponse, mais d'apres tes posts, ceci devrait resoudre ton pb.
 
int x;
 
fscanf(fis,"%hd",&x);  
tab[nm][nm]= (double) x;
 
A+;


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 20-05-2001 à 22:15:52    

il faut faire un cast (double)
 
et peut etre aussi un mask
 
int x;
double y = (0x00FF) & ((double) x);

Reply

Marsh Posté le 21-05-2001 à 00:15:04    

bigben2 a écrit a écrit :

Lors je recifie mon problem.
Mon tableau est bien definit en double mais dans ma boucle de stockage de données j'aie:
fscanf(fis,"%hd",&tab[nm][nm]);
Et si je met:
fscanf(fis,"%lf",&tab[nm][nm]);
ca ne marche pas car cela ne stocke pas les bons nombres dans le tableaus.
Ca ne stocke d'ailleur rien du tout!
QUE FAIRE  
MARCI
@+




 
 
moi je ferais un scanf d'un chaine (%s) et ensuite je la convertirais en double avec strtod.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed