J'ai une base de données remplie de doubles comme celui qui suit:chaîne en notation scientifique C++ double conversion
1.60000000000000000000000000000000000e+01
Quelqu'un sait-il comment convertir un certain nombre comme celui d'un double en C++?
Existe-t-il une façon «standard» de faire ce genre de choses? Ou dois-je lancer ma propre fonction?
En ce moment je fais qqch comme ceci:
#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;
}
Merci!
Quel type de base de données? Quel est le schéma de la base de données autour de ce champ? –
Quelle est la précision que vous devez garder de ce nombre? Si, garder cette haute précision n'est pas un problème, vous pouvez simplement "couper" cette chaîne et la convertir en double en utilisant des fonctions C ordinaires. – Andres
Notez que vous devez vérifier l'état du flux de chaînes après en avoir lu le contenu. La lecture peut échouer. – sbi