Строка в научной нотации C ++ с двойным преобразованием

голоса
8

У меня есть база данных, заполненные с двойниками, как следующий:

1.60000000000000000000000000000000000e+01

Кто-нибудь знает, как преобразовать число равно, что двойной в C ++?

Есть ли «стандартный» способ сделать этот тип вещи? Или я должен свернуть свою собственную функцию?

Сейчас я делаю это как-н:

#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;
}

Благодаря!

Задан 10/11/2009 в 18:12
источник пользователем
На других языках...                            


2 ответов

голоса
8

Вы хотите , стандартную с функцией atof ([A] SCII к [F] loat, но он фактически использует двойники , а не поплавки).

Ответил 10/11/2009 в 18:14
источник пользователем

голоса
16

Что-то вроде этого? Это будет «C ++» способ сделать это ...

#include <sstream>
using namespace std;

// ...

    string s = "1.60000000000000000000000000000000000e+01";
    istringstream os(s);
    double d;
    os >> d;
    cout << d << endl;

Печать 16.

Ответил 10/11/2009 в 18:15
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more