Foro de elhacker.net

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
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. #include <string>
  7. using std::string;
  8.  
  9. #include <sstream>
  10. using std::stringstream;
  11.  
  12. int main()
  13. {
  14. double num = 1.2345;
  15. string texto;
  16.  
  17. stringstream ss;
  18. ss << num;
  19. ss >> texto;
  20.  
  21. string::size_type num_chars = texto.size();
  22. for (string::size_type i = 0; i != num_chars; ++i)
  23. cout << texto[i] << endl;
  24.  
  25. return 0;
  26. }

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/