我是Visual C ++的新手,我有两个双变量,让我们说AA = 10.650406
而b = 10.65040606439
,我怎样才能使它们相等?
这是一个例子
AA = 10.650406;
if(a == tempfunc(zz)) 执行TRUEFUNCTION 其他 偏见FALSEFUNCTION
变量AA是double,而函数tempfunc返回double,如果值AA是10.650406,而tempfunc的返回值是10.65040606439。问题是如何使这些值相等所以我可以执行函数TRUEFUNCTION
答案 0 :(得分:2)
典型的解决方案是使用“epsilon值”比较差异。像
这样的东西const double eps = 0.000001; // Adjust this to match the "perecision" you need.
if (abs(a-b) < eps)
{
// Values are almost equal
}
答案 1 :(得分:0)
我想你的问题是:如何对这两个号码进行检查,但并非对所有人都这样......:
10.123 == 10.1234 (TRUE)
10.123 == 11.123 (FALSE)
如果小数点分隔符后面有一个固定的位数(在你的例子中是6),你可以这样做:
int a2 = a * 10e6;
int b2 = b * 10e6; // (conversion to integers; so the digits smaller than the 6th digit will be removed)
现在您可以查看:
if (a2 == b2)
{
//do your thing
}
简而言之:
if ( ((int) a*10e6) == ((int) b*10e6))
{
//do your thing
}