申し訳ありませんが、私は非常に基本的な質問があります。C++で精度を100桁に設定するにはどうすればよいですか?
これは非常に簡単な計算で、整数(22)を別の整数(7)で割ったものです。私は、コード内の実際の計算と出力値の両方で、C++コードが正確に100桁の精度を使用したいと思います。メープル・プログラムを使用して、私は
restart;
Digits:=100;
evalf(22/7);
を取得し、私が得る答えは、
3.142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857143
あるしかし、私は次のC++コードを使用して、何か別の答えを得ます。これは、実際の数字の数が少なくてもゼロを追加するだけです。これは完全に間違っています。以下は私のC++コードです。メープル・プログラムを使用して
#include <iostream>
using namespace std;
int main()
{
cout << fixed;
cout.precision(100);
cout << "22/7 = " << 22/(double)(7) << endl;
return 0;
}
C++は倍精度浮動小数点数(〜14桁)を正確に保持します。これは、表示精度ではありません。 –
任意の精度ライブラリを検索してみてください。 –
[浮動小数点の不正確な例]の重複の可能性があります(http://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples) – dandan78