Je souhaite convertir un double en chaîne de largeur fixe.Convertir le double en chaîne avec une largeur fixe
Si la largeur est 10, alors je veux que la valeur double soit arrondie à cette largeur.
Par exemple, si la valeur = 102,121323435345 et la largeur est de 10, cette valeur devrait être,
position==> value = 102.121323
je peux y parvenir avec snprintf, mais je suis à la recherche d'un C++ code natif pour faire la même chose.
char buf[125];
snprint(buf, width, "%.6f", value);
J'ai essayé d'utiliser le ci-dessous, mais il ne me aide pas beaucoup,
std::ostringstream oss;
oss << std::fixed << std::setw(10) << std::precision(6) << value;
std :: guarantiees setw la largeur minimale de la valeur et si la valeur est supérieure à la taille de la largeur , ça ne termine pas les valeurs.
Merci.
Quelque chose qui n'est pas tout à fait clair pour moi: essayez-vous d'imprimer avec une largeur de 10 comme dans votre exemple de sortie, ou 4 décimales, comme dans votre code c? – Martin
Pourquoi êtes-vous contre l'utilisation de snprintf? C'est parfaitement valide C++. L'ostringstream est exagéré pour cela. – Vitali
@Martin, je veux que la largeur soit constante –