[c++] Cast double -> string
Résolu
bobi14
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
codeurfou -
codeurfou -
Bonjour,
Je souhaiterai savoir s'il est possible de caster un double en string.
Si oui est-ce que les chiffres aprés la virgule seront pris en compte?
Merci d'avance pour vos réponses.
Je souhaiterai savoir s'il est possible de caster un double en string.
Si oui est-ce que les chiffres aprés la virgule seront pris en compte?
Merci d'avance pour vos réponses.
A voir également:
- C++ double to string
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Qwerty to azerty - Guide
- Double appel - Guide
4 réponses
La solution C++ c'est de passer par un ostringstream.
Ce qui donne :
Tu peux éventuellement régler le nombre de décimales qui vont apparaître à priori le nombre de décimales est réglable sur oss
http://www.cplusplus.com/reference/ios/ios_base/precision/
Sinon il reste les traditionnels sprintf du C, qui passent par un buffer.
donne à l'éxecution :
La vraie question, c'est as-tu besoin de passer par un buffer ou un
Bonne chance
#include <iostream> #include <sstream> int main(){ double x = 1.23456789; std::string s; { std::ostringstream oss; oss << x; s = oss.str(); } std::cout << "x = " << x << " s = " << s << std::endl; return 0; }
Ce qui donne :
(mando@aldur) (~) $ g++ -W -Wall plop.cpp
(mando@aldur) (~) $ ./a.out
x = 1.23457 s = 1.23457
Tu peux éventuellement régler le nombre de décimales qui vont apparaître à priori le nombre de décimales est réglable sur oss
http://www.cplusplus.com/reference/ios/ios_base/precision/
Sinon il reste les traditionnels sprintf du C, qui passent par un buffer.
#include <iostream> extern "C"{ #include <stdio.h> } int main(){ double x = 1.23456789; std::string s; char buffer[100]; sprintf(buffer,"%.9lf",x); s = buffer; std::cout << "x = " << x << " s = " << s << std::endl; return 0; }
donne à l'éxecution :
(mando@aldur) (~) $ g++ -W -Wall plop.cpp
(mando@aldur) (~) $ ./a.out
x = 1.23457 s = 1.234567890
La vraie question, c'est as-tu besoin de passer par un buffer ou un
std::ostringstream, pour ne pas directement régler la précision de ton
std::ostream(ce qui inclue en particulier
std::cout,
std::cerr, les
std::ofstreamet les
std::ostringstream).
Bonne chance
codeurfou
Merci
Salut,
Oui c'est tout à fait possible avec par exemple la fonction sprintf (oui j'adore cette fonction).
Oui c'est tout à fait possible avec par exemple la fonction sprintf (oui j'adore cette fonction).
sprintf(ton_string,"%f",ton_double);