当比较相等的双精度时,我们需要给出一个容差级别,因为浮点计算可能会引入错误。例如: double x;
double y;
x = f();
y = g();
if (fabs(x-y)<epsilon) {
// they are equal!
} else {
// they are not!
}
但是,如果我只是分配一个恒定值,没有任何计算,我还需要检查
我有一个在VB6中使用多年的DLL中的专有库(我没有代码)。我试图将VB6代码升级到C#,并希望使C#代码完全复制VB6行为。我无法准确地在每个环境中调用DLL匹配时完成某些计算的双精度结果。 在VB6我有这样的事情(注文件读写是确保完全一样的价值观的使用和产生的): Dim a As Double, b As Double, c As Double, d As Double
Open "C:\
我有以下Python脚本: x = 300000000.0
while (x < x + x):
x = x + x
print "exec: " + str(x)
print "terminated" + str(x)
这个看似无限循环,终止很快,如果x是一个浮点数。但是,如果我将x改为300000000,它会进入无限循环(在我的测试中运行时间超过一分钟)。 我认为这