Je cherche à supprimer les zéros de fin de la variable double et affecter le résultat à double variable.C++: Supprimer les zéros de fin de la partie fractionnaire de la variable double
S'il vous plaît noter que
- Je suis sur C++ 98.
- Je ne cherche pas à imprimer (en utilisant snprintf, ou Cout printf avec% g); Je cherche à enlever le zéro de fin et assigner le reste à la double variable.
entrée: double (par exemple 100,250 ou 100,1010 ou 100,375)
sortie: double (100,25, 100,101, 100,375)
par exemple
double Price = 100.250;
double convert = TrimZeros(100.250);
// convert = 100.25
- I essayé de convertir le double à stringstream, et égalise le zéro final de cette chaîne. Cependant, je suis incapable de le convertir en double après la coupe (avec la précision requise).
par exemple.
double Price = 100.250;
ostringstream osPrice;
osPrice << fixed << Price;
string cPrice = TrimString(osPrice.str()); // my function to trim trailing zero of string
//cPrice = "100.25"
// Now When I try to convert cPrice back to double, it adds extra zeros i.e. 100.250000
Je suis très bien avec quoi que ce soit, à savoir - Une fonction directe de rogner les zéros de double et attribuer revenir à variable double le reste.
OU
- Convertir double à cordes, découpez les zéros de chaîne et reconvertir correctement doubler.
Veuillez nous aider.
Um ... vous ne pouvez pas vraiment supprimer les chiffres d'un nombre de la façon que vous décrivez. Si vous ne voulez pas de zéros de fin dans une représentation de chaîne, il suffit de les supprimer s'ils apparaissent. – InternetAussie
Les zéros finaux n'affectent pas le nombre, alors pourquoi les supprimer? '1. == 1.0 == 1.00 == 1.000 == ... '. – NathanOliver
Quel est le cas d'utilisation ici? – CinCout