2010-02-09 5 views
2

J'écris une double valeur dans un fichier. La valeur numérique est écrite avec un point comme séparateur décimal. Je voudrais utiliser une virgule. Comment je peux faire ça?Formatage de sortie décimal C++

+0

S'il vous plaît poster votre code, sans code de référence c'est difficile de faire des suggestions –

Répondre

3

La méthode habituelle consiste à utiliser un paramètre régional avec le séparateur décimal défini sur la virgule. Si votre machine est configurée pour cela en général, vous pouvez probablement utiliser les paramètres régionaux sans nom pour cela:

std::cout.imbue(std::locale("")); 
std::cout << 12345.67; 
-1

Je pense que dans la bibliothèque cmath

il y a une fonction appelée modf qui prend un flotteur ou double, et un pointeur sur un flotteur ou double, et renvoie un entier.

double intPart; 
double fractPart; 
fractPart = modf(doubleValue, &intPart); 

Vous passez la double valeur, elle renvoie la partie décimale comme un entier, et la valeur entière est stockée dans le pointeur que vous avez passé dans.

Vous pouvez ensuite écrire ces vers le fichier mais vous voulez, avec une virgule au milieu ou quoi que ce soit, juste l'écrire comme deux nombres séparés. float ou double

2

Vous pouvez trouver la réponse dans un earlier question Cela modifie fondamentalement les paramètres régionaux utilisés par les flux que vous utilisez.