标签: equality

为什么这两个比较有不同的结果?

为什么这段代码返回true:

new Byte() == new Byte()   // returns true
Run Code Online (Sandbox Code Playgroud)

但是这段代码返回false:

new Byte[0] == new Byte[0] // returns false
Run Code Online (Sandbox Code Playgroud)

.net c# equality

68
推荐指数
3
解决办法
3283
查看次数

(.1f + .2f ==.3f)!=(.1f + .2f).Equals(.3f)为什么?

我的问题不是浮动精度.这是为什么Equals()不同于==.

我明白为什么.1f + .2f == .3ffalse(同时.1m + .2m == .3mtrue).
我得到的==是参考,.Equals()是价值比较.(编辑:我知道还有更多.)

但是,为什么(.1f + .2f).Equals(.3f) true,而(.1d+.2d).Equals(.3d)仍然是false

 .1f + .2f == .3f;              // false
(.1f + .2f).Equals(.3f);        // true
(.1d + .2d).Equals(.3d);        // false
Run Code Online (Sandbox Code Playgroud)

c# equality floating-accuracy

67
推荐指数
3
解决办法
5938
查看次数

在Javascript中确定日期平等

我需要找出用户在Javascript中选择的两个日期是否相同.日期以字符串("xx/xx/xxxx")传递给此函数.这就是我需要的所有粒度.

这是我的代码:

        var valid = true;
    var d1 = new Date($('#datein').val());
    var d2 = new Date($('#dateout').val());
    alert(d1+"\n"+d2);
    if(d1 > d2) {
        alert("Your check out date must be after your check in date.");
        valid = false;
    } else if(d1 == d2) {
        alert("You cannot check out on the same day you check in.");
        valid = false;
    }
Run Code Online (Sandbox Code Playgroud)

将日期转换为对象后的javascript警报如下所示:

2011年1月25日星期二00:00:00 GMT-0800(太平洋标准时间)

2011年1月25日星期二00:00:00 GMT-0800(太平洋标准时间)

确定日期1是否大于日期2的测试有效.但是使用==或===运算符不会将valid更改为false.

javascript equality date

61
推荐指数
2
解决办法
3万
查看次数

在Javascript中比较NaN值是否相等

我需要在Javascript中比较两个数值相等.值也可以NaN.我想出了这段代码:

if (val1 == val2 || isNaN(val1) && isNaN(val2)) ...
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它看起来很臃肿.我想让它更简洁.有任何想法吗?

javascript comparison equality nan

61
推荐指数
6
解决办法
5万
查看次数

比较两个List <string>是否相等

除了单独逐步执行元素之外,如何比较两个字符串列表是否相等(在.NET 3.0中):

这失败了:

// Expected result.
List<string> expected = new List<string>();
expected.Add( "a" );
expected.Add( "b" );
expected.Add( "c" );

// Actual result
actual = new List<string>();
actual.Add( "a" );
actual.Add( "b" );
actual.Add( "c" );

// Verdict
Assert.IsTrue( actual == expected );
Run Code Online (Sandbox Code Playgroud)

.net c# collections comparison equality

60
推荐指数
5
解决办法
4万
查看次数

将它们与==进行比较时,具有相同id的对象是否始终相等?

如果我有两个对象o1和o2,我们就知道了

id(o1) == id(o2)
Run Code Online (Sandbox Code Playgroud)

返回true.

然后,它是否遵循这一点

o1 == o2
Run Code Online (Sandbox Code Playgroud)

或者情况并非如此?我正在研究的论文说情况并非如此,但在我看来应该是真的!

python equality

59
推荐指数
3
解决办法
3883
查看次数

集,函子和Eq混淆

最近关于集合的讨论出现了,在Scala中支持该zip方法以及如何导致bug,例如

scala> val words = Set("one", "two", "three")
scala> words zip (words map (_.length))
res1: Set[(java.lang.String, Int)] = Set((one,3), (two,5))
Run Code Online (Sandbox Code Playgroud)

我认为很明显Sets不应该支持一个zip操作,因为元素没有被排序.但是,有人认为这个问题Set不是真正的算子,也不应该有map方法.当然,你可以通过映射集合来解决自己的问题.现在切换到Haskell,

data AlwaysEqual a = Wrap { unWrap :: a }

instance Eq (AlwaysEqual a) where
    _ == _ = True

instance Ord (AlwaysEqual a) where
    compare _ _ = EQ
Run Code Online (Sandbox Code Playgroud)

现在在ghci

ghci> import Data.Set as Set
ghci> let nums = Set.fromList [1, 2, 3]
ghci> Set.map unWrap $ Set.map …
Run Code Online (Sandbox Code Playgroud)

haskell scala equality functor

58
推荐指数
2
解决办法
3489
查看次数

当字符串中有点时,为什么"is"关键字具有不同的行为?

考虑以下代码:

>>> x = "google"
>>> x is "google"
True
>>> x = "google.com"
>>> x is "google.com"
False
>>>
Run Code Online (Sandbox Code Playgroud)

为什么会那样?

为了确保上述内容正确,我刚刚在Linux上测试了Python 2.5.4,2.6.5,2.7b2,Python 3.1和Linux上的Python 2.7b1.

看起来所有这些都是一致的,所以它是设计的.我错过了什么吗?

我发现,我的一些个人域名过滤脚本失败了.

python identity equality

56
推荐指数
2
解决办法
2530
查看次数

在c#中测试字典之间的相等性

假设字典键和值的equals和hash方法正确实现,那么测试两个字典相等的最简洁有效的方法是什么?

在这种情况下,如果它们包含相同的一组键(顺序并不重要),则说两个字典是相等的.对于每个这样的键,它们都同意该值.

这里有一些我提出的方法(可能还有更多):

public bool Compare1<TKey, TValue>(
    Dictionary<TKey, TValue> dic1, 
    Dictionary<TKey,TValue> dic2)
{
    return dic1.OrderBy(x => x.Key).
        SequenceEqual(dic2.OrderBy(x => x.Key));
}

public bool Compare2<TKey, TValue>(
    Dictionary<TKey, TValue> dic1, 
    Dictionary<TKey, TValue> dic2)
{
    return (dic1.Count == dic2.Count && 
        dic1.Intersect(dic2).Count().
        Equals(dic1.Count));
}

public bool Compare3<TKey, TValue>(
    Dictionary<TKey, TValue> dic1, 
    Dictionary<TKey, TValue> dic2)
{
    return (dic1.Intersect(dic2).Count().
        Equals(dic1.Union(dic2).Count()));
}
Run Code Online (Sandbox Code Playgroud)

c# dictionary equality

56
推荐指数
3
解决办法
3万
查看次数

IStructuralEquatable和IStructuralComparable解决了什么问题?

我注意到这两个接口,以及几个相关的类,已经在.NET 4中添加了.它们对我来说似乎有点多余; 我已经阅读了几个关于它们的博客,但我仍然无法弄清楚它们在.NET 4之前解决了哪些棘手问题.

什么是使用IStructuralEquatableIStructuralComparable

.net equality icomparable iequalitycomparer

55
推荐指数
4
解决办法
7842
查看次数