我会说,您所拥有的已经是最好的方法。很明显,您对值的 按位 表示感兴趣。您碰巧将那些位转换
long为没有任何时髦行为的便捷的64位类型。
如果您不希望它频繁出现在您的代码库中,只需添加一个包装方法即可:
public static boolean bitwiseEqualsWithCanonicalNaN(double x, double y) { return Double.doubleToLongBits(x) == Double.doubleToLongBits(y);}请注意,根据您的问题,这 不能
区分不同的NaN值。如果您想在以后进行此操作,则需要使用
Double.toRawLongBits。



