Cadena en notación científica C ++ a doble conversión
-
19-09-2019 - |
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!
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