GWT签约零

时间:2017-02-10 09:26:50

标签: javascript java gwt signed

在Java中,我可以区分0D and -0D

new Double("0").equals(new Double("-0")) // false

但显然,在GWT将我的Java转换为JavaScript之后,这似乎不再起作用了。我甚至在GWT dev-mode中获得false但在GWT super-dev-mode中获得true

我在JavaScript中read

0.0 === -0.0 // true

Object.is(0, -0) // false

如何强制GWT使用Object.is比较?或者是否还有其他解决方案来检查我是否有零或正零?

2 个答案:

答案 0 :(得分:1)

您可以使用使用Object.is

的JSNI声明一个新方法
public static native boolean compareDoubles(Double a, Double b) /*-{
    return Object.is(a, b);
}-*/;

答案 1 :(得分:0)

好的,经过一些研究后,我想出了一个使用JSNI的解决方案:

native boolean isNegative(double value)
/*-{
    return 1 / value < 0;
}-*/;

由于1/-0在JavaScript中生成-Infinity,因此可以使用。{/ p>