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 :

Séparateur décimal : point ou virgule ?


Sujet :

C

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut Séparateur décimal : point ou virgule ?
    Bonjour

    J'ai un problème avec le séparateur décimal. Je n'arrive pas à croire ce qu'il m'arrive.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                            sscanf("2,5","%f",&sortie);
    printf("%f -=- ",sortie);
                            ii=sscanf(node->attributs[i].value,"%f",&sortie);
    printf("Lecture float : %s => %f\n",node->attributs[i].value,sortie);
    Voici l'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :2,500000 -=- Lecture float : 1.6 => 1,000000
    Donc, le séparateur décimal décimal pris en compte est la virgule !
    Je me pince, j'en conclu que je ne rêve pas...

    Comment faire pour tester quel est le séparateur décimal pris en compte ? Ou comment faire pour forcer le point ?

    Pour information, je suis sous Linux et sous windows. Sous Linux, je compile avec gcc ou mingcc.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut
    Je viens de me répondre à moi-même...

    Il faut rajouter ça au début du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_NUMERIC,"C"); /* imposer le . comme séparateur décimal */
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Bonjour

    C'est plus un problème d'OS (configuration du format régional) que C. Ainsi sous Linux tu peux taper la commande "locale" qui affiche ta config locale. Et si tu veux avoir le point pour tous tes programmes sans avoir besoin de forcer le setlocale(), faudra taper dans ces variables...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 605
    Par défaut
    Oui, mais si je souhaite passer ce programme à d'autre, il faudra alors que j'impose la méthode pour lire les données qui sont dans des fichiers odt (libreoffice).
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

Discussions similaires

  1. Séparateur décimal : virgule ou point
    Par Invité dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/11/2013, 12h19
  2. [XL-2003] comparer 2 chiffres : séparateur point et virgule
    Par Djohn dans le forum Excel
    Réponses: 3
    Dernier message: 12/10/2011, 14h36
  3. [XL-2003] Compatibilité séparateur décimal (point/virgule)
    Par Simon27 dans le forum Excel
    Réponses: 3
    Dernier message: 30/10/2009, 12h00
  4. Import fichier csv dans access (séparateur décimal = virgule)
    Par Averroes dans le forum Modélisation
    Réponses: 16
    Dernier message: 16/09/2007, 11h25
  5. Réponses: 3
    Dernier message: 11/11/2005, 11h59

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