我有一个用 Microsoft Visual C++ 6.0 编写的应用程序。现在我使用 C# 在 Visual Studio 2010 中重写了应用程序,但由于精度问题,结果不匹配。以下是此类精度问题之一。
float a = 1.0f;
float b = 3.0f;
float c = a / b;
这是在 Visual Studio 2010 中运行时的 C# 代码给出的c
值 =0.333333343
但是相同的代码,在值定义中的值之后删除 f,当在 Visual C++ 6.0 上运行时,会给出 c value = 0.333333
。
任何人都可以对其进行整理并解释在 Visual Studio 和 Visual C++ 6.0 中为 c 具有相同值的方法吗?
实际上这些值是从监视窗口中获取的。我开始知道不同版本的视觉工作室可能在浮点格式表示上有所不同。因此 watch 中的值可能没有用。这就是为什么我在两个 Visual Studio 版本中都打印了这些值的原因,结果如下。使用 Visual Studio 6.0 使用 Visual C++ 语言,它是 0.333333(六个 3)
但使用 C# 语言的 Visual Studio 10 为 0.3333333(七个 3)
那么任何人都可以帮助我让我的 C# 程序产生与 Visual C++ 相同的结果吗???(即如何进行浮动操作以在两个版本上产生相同的结果???)