您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 1浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法

星拱北辰 发布时间:2022-10-02 11:29:39 ,浏览量:1

原代码:

Assert.assertEquals(29.9, discountObj.getPrice());

JUnit 4.13.2 警告:'assertEquals(double, double)' is deprecated

错误原因在于:浮点数运算可能不精确,导致出现本来该相等的小数却不相等的现象。

事实上,JUnit提供了Assert.assertEquals(double, double)的重载方法Assert.assertEquals(double, double, double)来解决此问题。其中,最后一个double参数命名为delta,表示可接受的误差范围,如1e-6

当时改的是:

Assert.assertEquals(discount.getPrice(), 29.9, 1e-6);

这个warning也启示我们:浮点运算后的浮点数相等判定不能仅仅用==来进行,还要考虑误差取舍。

关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0418s