Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JUnit中对float和double值使用assertTrue可以吗?_Junit_Decimal_Assert - Fatal编程技术网

在JUnit中对float和double值使用assertTrue可以吗?

在JUnit中对float和double值使用assertTrue可以吗?,junit,decimal,assert,Junit,Decimal,Assert,我尝试在浮点上使用assertEquals方法,eclipse表示该方法已贬值。因此,以下替代方案是否可以接受 Assert.assertTrue("Total does not match expected total :", receipt.getTotal() == 32.19f); 为什么在测试中不能使用assertEquals来比较两个浮点数或两个浮点数 一般来说,在JUnit中断言两个十进制值相

我尝试在浮点上使用assertEquals方法,eclipse表示该方法已贬值。因此,以下替代方案是否可以接受

Assert.assertTrue("Total does not match expected total :",
                                            receipt.getTotal() == 32.19f);
为什么在测试中不能使用assertEquals来比较两个浮点数或两个浮点数


一般来说,在JUnit中断言两个十进制值相等的最佳方法是什么。我使用的是JUnit的4.10版本。一般来说,您可以将原语类型与==进行比较,但对于浮点值,两个值在格式化为字符串时看起来相同,但可以是两个不同的值。你应该使用。看看答案


由于double和float计算不一定精确,因此可以使用delta有效地比较误差幅度。

一般来说,可以将基元类型与==,但对于浮点值,两个值在格式化为字符串时看起来相同,但是两个不同的值。你应该使用。看看答案

因为双精度和浮点计算不一定精确,所以可以使用delta有效地比较误差范围