Convertir une chaine en float
Bonjour à tous,
Je cherche à convertir des données lues sur une carte MMC.
Mes nombres de type float sont lus et recopiés dans un tableau de caractères, qui s'affiche correctement sur le LCD.
Par contre la conversion vers un float donne obstinément 0.000, voilà un extrait
du code :
Code:
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 26 27 28 29 30
|
// déclarations
char tstr[20];
char CommandeLecture[20];
char CommandeLectureUneData[20]="R 1 12 ";
char ChaineValeur[20];
int NumeroElement;
int AdresseElement;
int DepartElement;
int i;
float Somme=0.0;
float NombreLu=0.0;
// La partie du code qui nous concerne
// Récupération des caractères lus on supprime les deux derniers
// CR et LF
tampon_MMC[count_MMC-2]='\0';
// Recopie dans ChaineValeur
strncpy(ChaineValeur,tampon_MMC,12);
// Conversion et affichage
CharLCD_Position(0,0);
NombreLu=atof(ChaineValeur);
Somme=Somme+NombreLu;
sprintf(tstr,"%10.3f",NombreLu);
CharLCD_PrintString(tstr);
CharLCD_Position(1,0);
CharLCD_PrintString(ChaineValeur); |
ChaineValeur s'affiche correctement, par contre nombre lu affiche toujours 0.000
Merci du coup de main.
P.G