Double a Char [C++]

Iniciado por Talard, 19 Febrero 2012, 18:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Talard

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

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language