首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nashorn: BigDecimal与Nashorn数的严格相等

Nashorn: BigDecimal与Nashorn数的严格相等
EN

Stack Overflow用户
提问于 2017-04-13 15:52:41
回答 1查看 477关注 0票数 1

在甲骨文的JDK 1.8.0_121中,在Nashorn (嵌入在JDK中的JavaScript引擎)中,new BigDecimal(1.0) === 1falsenew BigDecimal(1.0) == 1true

使用JDK 1.8.0_121的jjs (Nashorn REPL):

代码语言:javascript
复制
jjs> var BigDecimal = Java.type("java.math.BigDecimal")
jjs> var bd = new BigDecimal(1.0)
jjs> bd
1
jjs> bd === 1.0
false
jjs> bd == 1.0
true

使用JDK 1.8.0_74的jjs

代码语言:javascript
复制
jjs> var BigDecimal = Java.type("java.math.BigDecimal")
jjs> var bd = new BigDecimal(1.0)
jjs> bd
1
jjs> bd === 1.0
true
jjs> bd == 1.0
true

在纳什霍恩,这是众所周知的严格的平等规则吗?纳什霍恩中的===严格相等运算符是否有一个明确的规范,可以解释这种行为,并有望解释行为的变化?

或者这是JDK中的一个回归?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 16:50:59

这是JDK 1.8.0_101中的有意更改,后来在JDK-8143896中进行了记录。严格相等的处理必须是有意的,因为它是用用于将BigDecimal与整数进行比较的测试用例调用的。

在JDK发行说明中没有提到这一点,但是可以确认它是一种有意的行为改变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43396745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档