0

この文字列を正確な数値表現に変換する方法が必要です。私はかなりの数のことを試しましたが、私が知っていることから、これはうまくいくはずです(有名な最後の言葉)。ライブラリのインストールを避けようとしていますが、これらの数値を変換する必要があります。

長い 10 進数を 2 進数で表現するのは難しいことは理解していますが、解決策が必要です。

#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
   string data = "138.6470184568";
   cout << atof(data.c_str()) << endl;

   return 0;
}

出力

138.647
4

1 に答える 1

-1

正しく変換されていることがわかりましたが、数値を計算するように求められた場合、小数点以下3〜4桁しか表示されません。理由を知っている人はいますか?

#include <iostream>
#include <stdlib.h>
#include <iomanip>

using namespace std;

int main()
{
   string data1 = "138.6470184568";
   string data2 = "138.6470184568";
   double data3 = atof(data1.c_str()) + atof(data2.c_str());

   cout << data3 << endl;
   cout << setprecision(15) << data3;

   return 0;
}

与える

277.294
277.2940369136
于 2014-11-19T00:28:31.637 に答える