17

次のような double で満たされたデータベースがあります。

1.60000000000000000000000000000000000e+01

そのような数値を C++ で double に変換する方法を知っている人はいますか?

この種のことを行う「標準的な」方法はありますか? または、自分の関数をロールする必要がありますか?

今、私はこのように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;
}

ありがとう!

4

2 に答える 2

21

このようなもの?これは「C++」の方法です...

#include <sstream>
using namespace std;

// ...

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

16を印刷します。

于 2009-11-10T19:15:43.913 に答える
11

標準の c 関数 atof が必要です([A]SCII から [F] loatにしますが、実際には float ではなく double を使用します)。

于 2009-11-10T19:14:18.550 に答える