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
Puedes utilizar la clase "stringstream", por ejemplo:
#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
prueba a usar sprintf:
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/