为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Eclipse和Maven中double的比较不同?

为什么Eclipse和Maven中double的比较不同?

心有法竹 2021-04-27 13:53:41
我有从文件加载属性的程序。当代码中的配置文件中不存在该属性时,我将该属性设置为默认值。在JUnit测试中,我正在测试如果未设置property,则该值为默认值。我的属性是一些阈值(以毫秒为单位),该阈值以字符串形式表示,而不是转换为double和seconds。默认值为1000,所以0.001 * 1000 = 1.0。在我的代码中,我基本上有这个(我正在使用JUnit 4.8):double defaultThreshold = 1.0;double threshold = getThreshold();Assert.assertEquals(0, Double.compare(defaultThreshold, threshold));我以为Java版本可能有问题,但是我在Eclipse中用Java 1.6、1.7和1.8进行了尝试,并且在mvn中都通过了,我使用了Java 1.7.0_71,但在与以下比较中失败了: expected:<0> but was:<1>注意:如果两个数字相等,则Double.compare返回0。 https://www.tutorialspoint.com/java/lang/double_compare.htm 如果d1在数值上等于d2,则此方法返回值0;否则,该方法返回值0。如果d1在数值上小于d2,则该值小于0;如果d1在数值上大于d2,则该值大于0。
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

问题不是双倍比较,而是控制台maven和eclipse中JUnit执行的顺序不同:/问题的原因是,在一种情况下,以前的测试影响了另一种测试,而在另一种情况下,则不是因为我期望相同的顺序不同但事实并非如此。


查看完整回答
反对 回复 2021-05-12
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信