在asp.net中双重比较失败

时间:2014-06-03 17:15:54

标签: asp.net compare double

这行代码:

Response.Write("isEqual check:" + (val1 = val2).ToString + "[" + val1.ToString + ":" + val2.ToString + "]")

准确输出:

  

isEqual check:False [5998,88:5998,88]

正如你所看到的,他们完全相同(但显然不是?)

注意:val1是数学计算的结果,val2来自数据库字段,如下所示:

Dim val2 as Double = CDbl(datarow("amount"))

1 个答案:

答案 0 :(得分:0)

好吧,我注意到它是一个.NET的东西。我们无法直接比较Double类型。我需要编写一个哑函数来检查它们是否实际上是一个公差级别相同的。我在这里做了什么:

Function isEqual(v1 as Double, v2 as Double, Optional tolerance as Double = 0.0001) as Boolean
Return Math.Abs(v1 - v2) < tolerance
End Function