我难住了。这是我的测试用例。
theTestArray := #(1.2 3 5.1 7).
self assert: theTestArray squareOfAllElements = #(1.44 9 26.01 49).
断言不应该失败。在计算每个元素的平方是正确的。所以我做了“步入测试”,表明方法 squareOfAllElements 和 #(1.44 9 26.01 49) 的结果都是相同的,但断言评估为假。为什么?我在这里做错了什么?任何帮助表示赞赏。
最佳答案
您在这里处理浮点数。根据定义,浮点数是不精确的,您永远不应该使用 #= 来比较它们。
有关详细信息,请查看 Pharo 浮点数示例草案章节的第 1.1 节:http://stephane.ducasse.free.fr/Web/Draft/Float.pdf
关于floating-point - 在 Smalltalk 单元测试用例中,断言不应该失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564521/