在 Java 8 (Nashorn) 中执行的以下 Javascript 代码的行为不符合预期:
if( a != b )
{
do_sth();
}
a 和 b 是来自 Java 对象的长值(例如 1023948、1023949)。例如,当 a = 1023949 且 b = 1023949 时,a != b 为真。
请注意,以下代码可以正常工作:
if( (a+0) != (b+0) )
{
do_sth();
}
我知道长精度问题(因为 Javascript 数字是 64 个双精度数),但我期望“小”长值应该起作用。
任何意见都会受到赞赏。谢谢。
我猜 Nashorn 将长值传递为JS 对象到 JS 端,因此即使值相同,比较也会返回错误。
您可以检查typeof a and b在JS方面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)