「完全な精度」とは、正しい結果がC#プログラムで計算した結果と異なる場合がないことを意味します。
C#とC ++で同じテストを実行して(cout.precision()を使用せずに)これを確認しました。C#とC ++での私のプログラムの2つのバリアントは、同じテストで同じように動作すると確信しています。
C#のサンプルコード。
double a;
//...code...
Console.WriteLine(a.ToString(CultureInfo.InvariantCulture));
同じですが、C++です。
double a;
//...code...
cout << a << endl;
実際、cout.precision()を使用しないC ++プログラムは失敗し、Console.WriteLine()のみを使用するC#は成功しました。
これは、C ++プログラムが何らかの方法で(おそらく魔法のように)数値を切り捨て、精度が失われるために発生することを知っています。しかし、すべてのテストに合格するということは、C#が常に完全な精度でdoulbe変数を出力することを意味しますか?