IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Convertir une chaine en float


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    P.G
    P.G est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 158
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1

  3. #3
    P.G
    P.G est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 158
    Par défaut
    Merci pour ta réponse.

    En jetant un coup d'oeil au code c'est bien la fonction atof
    que j'utilisais.

    Mais le problème provenais du builder qui ne déclenchait
    pas de message d'erreur alors que j'avais oublié de mettre l'include
    de la bibliothèque stdlib.h

    Merci des infos.

    P.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/05/2012, 17h24
  2. [XSLT]Convertir une chaîne en float, int etc ... avec XSL
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/05/2006, 10h12
  3. [C#] Convertir une chaine accentue => sans accents
    Par alex57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/09/2005, 09h21
  4. Convertir une chaine en format heure
    Par Lars dans le forum ASP
    Réponses: 3
    Dernier message: 24/05/2005, 11h44
  5. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo