Строка в научной нотации 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 10

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, но на самом деле она использует двойники, а не поплавки).