Строка в научной нотации C++ для двойного преобразования
У меня есть база данных, заполненная двойниками, такими как:
1.60000000000000000000000000000000000e+01
Кто-нибудь знает, как преобразовать такое число в двойник в C++?
Есть ли "стандартный" способ делать такие вещи? Или я должен свернуть свою собственную функцию?Прямо сейчас я делаю sth вот так:
#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;
}
Спасибо!
2 ответа:
Что-то вроде этого? Это был бы "C++" способ сделать это...
#include <sstream> using namespace std; // ... string s = "1.60000000000000000000000000000000000e+01"; istringstream os(s); double d; os >> d; cout << d << endl;
Отпечатки 16.
Вам нужна стандартная функция c atof ([A]SCII to [F] loat, но на самом деле она использует двойники, а не поплавки).