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

SL & STL C++ Discussion :

Conversion de double "format scientifique"


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut Conversion de double "format scientifique"
    Bonjour,

    J'ai une partie de code en c++ qui me créé un fichier xml avec des valeurs numériques.
    Une fois le xml créé je le transforme en html en utilisant des feuilles de styles xsl.
    Dans cette feuille de style je calcul la valeur minimum des différentes valeurs de mon fichiers xml en utilisant la fonction min de EXSLT.
    Mon problème est que dans les valeurs rempli dans le fichier xml je me trouve avec des nombres scientifique du type : 1.22e-11 et la fonction min() de EXSLT ne le reconnai pas comme un nombre et me renvoi Nan( pour Not a Number).

    Dans mon code c++ le nombre en question est un double. Je voudrais savoir si il existe une méthode pour le transformer au format décimal "normal" et ainsi remplir mon xml avec la valeur au bon format.

    Merci.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par alaparra Voir le message
    Bonjour,

    J'ai une partie de code en c++ qui me créé un fichier xml avec des valeurs numériques.
    Une fois le xml créé je le transforme en html en utilisant des feuilles de styles xsl.
    Dans cette feuille de style je calcul la valeur minimum des différentes valeurs de mon fichiers xml en utilisant la fonction min de EXSLT.
    Mon problème est que dans les valeurs rempli dans le fichier xml je me trouve avec des nombres scientifique du type : 1.22e-11 et la fonction min() de EXSLT ne le reconnai pas comme un nombre et me renvoi Nan( pour Not a Number).

    Dans mon code c++ le nombre en question est un double. Je voudrais savoir si il existe une méthode pour le transformer au format décimal "normal" et ainsi remplir mon xml avec la valeur au bon format.

    Merci.
    bonjour que veut tu dire par format décimal "normal" ?
    sinon, tu utilise quoi pour écrire ton nombre? printf ou les flux ?

    si format décimal "normal" veut dire 0.00000000122
    avec printf tu devrait pouvoir faire (a tester)

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char number [256];
    double val =-1.22e-11
    sprintf(number,"%30.15f",val);

    ce qui va ecrit val sur 30 caractère avec 15 chiffre aprés la virgule. Avec les flux je ne sait pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    Par format normal j'entend 0.0000000122.

    En fait je croit que j'avais pas bien cerner le probleme, car ce n'est pas moi qui écrit la valeur dans le fichier xml mais une lib que j'utilise. En gros je passe a la lib une liste de double et elle m'écrit le fichier xml.
    Ce que je voudrais c'est lui passer le double au bon format, mais je suis pas sur que ce soit faisable sans agir sur l'écriture elle même.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par alaparra Voir le message
    Par format normal j'entend 0.0000000122.

    En fait je croit que j'avais pas bien cerner le probleme, car ce n'est pas moi qui écrit la valeur dans le fichier xml mais une lib que j'utilise. En gros je passe a la lib une liste de double et elle m'écrit le fichier xml.
    Ce que je voudrais c'est lui passer le double au bon format, mais je suis pas sur que ce soit faisable sans agir sur l'écriture elle même.
    Peut être que tu as une option pour l'ecriture? ou avec xsl, y as un forum sur le xml je croit

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    Merci,
    je vais voir si je ne peut pas agir directement sur ma feuille xsl.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Citation Envoyé par alaparra Voir le message
    Ce que je voudrais c'est lui passer le double au bon format, mais je suis pas sur que ce soit faisable sans agir sur l'écriture elle même.
    Au pire tu peux sans doute formater dans une chaînes de caractères et la lui passer au lieu du nombre directement ?

    MAT.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Par défaut
    Je ne peut pas utiliser de chaine de caratere, le seul moment ou je peut agir sur la valeur est lors de l'affectation du Double. Ensuite j'ajoute le Double dans une liste que j'utilise grâce à la lib dont j'ai parler pour écrire le fichier resultat au format Xml.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Tu écris 'Double', c'est une classe et non le type de base double ?
    Tu ne peux pas mettre des chaînes et non des doubles dans ta liste ?

    MAT.

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/04/2013, 16h46
  2. Conversion string (au format scientifique) en float
    Par Olivié dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2009, 17h13
  3. Conversion en double et notation scientifique
    Par bert24 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/09/2005, 13h26

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