Bonjour,
Je dois convertir un fichier texte en fichier XML.
J'utilise LIBXML2, C++, Visual Studio 2003.
Lors de l'écriture du fichier XML, je convertis plusieurs variables de type double en char :
Ce qui me donne une série de balise de ce type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 char Param1[100],Param2[100],Param3[100],Param4[100],Param5[100]; //Conversion en char sprintf(Param1,"%1.1f",m_Parametre1); sprintf(Param2,"%1.1f",m_Parametre2); sprintf(Param3,"%1.1f",m_Parametre3); sprintf(Param4,"%1.1f",m_Parametre4); sprintf(Param5,"%1.1f",m_Parametre5); xmlNewTextChild(pThisNode,NULL,(xmlChar*)XML_TAG_PARAM1,(xmlChar*)Param1); xmlNewTextChild(pThisNode,NULL,(xmlChar*)XML_TAG_PARAM2,(xmlChar*)Param2); xmlNewTextChild(pThisNode,NULL,(xmlChar*)XML_TAG_PARAM3,(xmlChar*)Param3); xmlNewTextChild(pThisNode,NULL,(xmlChar*)XML_TAG_PARAM4,(xmlChar*)Param4); xmlNewTextChild(pThisNode,NULL,(xmlChar*)XML_TAG_PARAM5,(xmlChar*)Param5);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <Parametre_1>0.0</Parametre_1> <Parametre_2>0.0</Parametre_2> <Parametre_3>0.0</Parametre_3> <Parametre_4>0.0</Parametre_4> <Parametre_5>0.0</Parametre_5>
Or, parfois mes parametres prennent des valeurs très petites à plusieurs décimales, style 0.000005.
Et vu qu'en faisant la conversion en char je limite à 1.1f (une seule décimale) mon parametre en sortie affiche zero.
Je voudrais donc pouvoir afficher autant de décimale que possible lorsque c'est nécessaire.
La solution simple serait de mettre "%1.10f" pour toutes les conversions mais pour une raison de lisibilité du fichier XML je ne préfère pas !
Donc si mon parametre1 dans mon fichier texte est 1.7
si le parametre 4 prend 0.005, je veux qu'il s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Parametre_1>1.7</Parametre_1>
mais s'il prend la valeur 0.4, je veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Parametre_1>0.005</Parametre_1>
et pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Parametre_1>0.4</Parametre_1>
Code : Sélectionner tout - Visualiser dans une fenêtre à part <Parametre_1>0.400</Parametre_1>
Avez vous une solution à me proposer ? est-ce possible ?
Partager