Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Talard en 19 Febrero 2012, 18:06 PM

Título: Double a Char [C++]
Publicado por: Talard en 19 Febrero 2012, 18:06 PM
Buenas, me ha surgido otra dudilla, he buscado bastante por google, pero no acabo de comprender cómo realizarlo.

Tengo un double con el valor 9.332621544e+157.

Bien, el caso es que lo que quiero lograr es, de ese double, coger cada carácter e ir sumándolo (el principio seria 9+3+3+2+6....).

Para ello se me ha ocurrido que podría transformarlo en un char, y de ahí ir número a número sumando y almacenarlo en un int, pero mi problema es que no tengo ni idea de cómo hacerlo.

¿Alguien sabe cómo hacerlo, o se le ocurre una manera más sencilla?

Muchas gracias :3
Título: Re: Double a Char [C++]
Publicado por: rir3760 en 19 Febrero 2012, 18:26 PM
Puedes utilizar la clase "stringstream", por ejemplo:
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <string>
using std::string;

#include <sstream>
using std::stringstream;

int main()
{
double num = 1.2345;
string texto;

stringstream ss;
ss << num;
ss >> texto;

string::size_type num_chars = texto.size();
for (string::size_type i = 0; i != num_chars; ++i)
cout << texto[i] << endl;

return 0;
}


Solo debes tener cuidado al trabajar con números de punto flotante, hay algunas discusiones recientes sobre el tema.

Un saludo
Título: Re: Double a Char [C++]
Publicado por: Akai en 19 Febrero 2012, 19:06 PM
prueba a usar sprintf:

http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/