XP与Windows 7上的C ++双重划分 - Windows 7问题

时间:2013-02-12 15:56:19

标签: visual-c++ windows-7 windows-xp

我一直在寻找这个问题的答案,但我能找到的只是围绕'double'数据类型舍入的典型问题。我的问题有点不同:

这是在Visual C ++ 2005中完成的(仍然由于遗留原因而使用)。以下是导致问题的简化示例代码:

double a = 9999999995;
double b = 100;
double c = a / b;

a,在这种情况下是进入函数的货币值,显示总分(实际上是在转换为双精度之前的很长时间)。 b是将其变为“美元和美分”的除数。

在Windows XP上,c最终会出现像99999999.94999998(我没有XP机器便携式ATM,所以这不是复制/粘贴 - 但足够接近)。当我们将其传递给我们的货币格式化程序时,我们得到预期的$ 99,999,999.95

然而,在Windows 7上,c最终为100000000.0000 - 这意味着它已经损失了整整5美分。

我不确定这是否是在64位Win7上运行32位VS 2005的结果?或者如何解决它?

0 个答案:

没有答案