在我的 Linq 查询中,我有一个如下所示的 where 语句
&& vio.Bows.Any(nw => nw.XCoordinate.Equals(currVio.XCoordinate)))
值是
nw.XCoordinate = 4056.48751252685
currVio.XCoordinate = 4056.488
因此 Equals 的语句不起作用,最简单的四舍五入方法是什么?
public double XCoordinate { get; set; }
最佳答案
您可以使用通常的方法来比较 double
的接近度,方法是计算绝对差,并将其与一个小值进行比较:
Math.Abs(x - y) < 1E-8 // 1E-8 is 0.00000001
例如,您可以在 LINQ 查询中使用这种方法,如下所示:
&& vio.Bows.Any(nw => Math.Abs(nw.XCoordinate-currVio.XCoordinate) < 0.001)
关于c# - Linq 数据类型与 Double 的比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16704405/