“完全精确”是指正确的结果不会与我使用 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# 总是以全精度打印一个双精度变量?