programacion - Cadena en notación científica C++ a doble conversión
notacion cientifica en turbo c (2)
Tengo una base de datos llena con dobles como la siguiente:
1.60000000000000000000000000000000000e+01
¿Alguien sabe cómo convertir un número así a un doble en C ++?
¿Hay una manera "estándar" de 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!
¿Algo como esto? Esta sería la forma de hacerlo "C ++" ...
#include <sstream>
using namespace std;
// ...
string s = "1.60000000000000000000000000000000000e+01";
istringstream os(s);
double d;
os >> d;
cout << d << endl;
Imprime 16.
Desea la función c estándar atof ([A] SCII a [F] loat, pero en realidad usa dobles en lugar de flotantes).