Pregunta

Tengo una base de datos llena con dobles como el siguiente:

1.60000000000000000000000000000000000e+01

¿Alguien sabe cómo convertir un número de esa manera a un doble en C ++?

¿Hay una manera "estándar" para hacer este tipo de cosas? O tengo que rodar mi propia función?

En este momento estoy haciendo algo como esto:

#include <string>
#include <sstream>



int main() {
    std::string s("1.60000000000000000000000000000000000e+01");
    std::istringstream iss(s);
    double d;
    iss >> d;
    d += 10.303030;
    std::cout << d << std::endl;
}

Gracias!

¿Fue útil?

Solución

Algo como esto? Este sería el "C ++" forma de hacerlo ...

#include <sstream>
using namespace std;

// ...

    string s = "1.60000000000000000000000000000000000e+01";
    istringstream os(s);
    double d;
    os >> d;
    cout << d << endl;

Láminas 16.

Otros consejos

Se desea que la función estándar de C atof ([A] a SCII [F] loat, pero en realidad utiliza dobles en vez de los flotadores).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top