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 :
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);
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
<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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Parametre_1>1.7</Parametre_1>
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>0.005</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.4</Parametre_1>
et pas :
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 ?