我有一个通用的C#类比较器例程,它从对象中读取值,然后使用反射逐个比较它们的属性。
var value1 = property.GetValue(object1, null);
var value2 = property.GetValue(object2, null);
if (!value1.Equals(value2))
{ ......问题是,我的一些浮点数/双精度值的差异是微不足道的,我想忽略它们。根据提供的有效位数比较值的浮点数/双精度数(以及可能是整型数)的特定测试的最佳实现方式是什么?
发布于 2011-12-09 21:27:31
看一下EqualityComparer<T>类。
而不是以您所描述的方式比较对象,您应该依赖于有问题的类型imho的Equals方法。也就是说,类的作者应该通过覆盖Equals方法(甚至可能实现IEquality接口)来定义该类的两个实例何时相等。
https://stackoverflow.com/questions/8445943
复制相似问题