gpt4 book ai didi

java - 简单方程未通过单元测试

转载 作者:行者123 更新时间:2023-12-01 07:39:14 25 4
gpt4 key购买 nike

我有一个方法,它接受 2 个整数作为参数并返回:

 public int method(int a, int b){
return Math.round((Math.abs(a-b)/3) - (Math.min(a,b)-1500)/10)
}

我已经创建了单元测试,它通过值 1400 和 1500(预期值为 43),但是对于 1459 和 1500 失败。预期输出是 18,但是我的方法返回 17。我相信这可能与舍入有关,但是我看不到任何明显的错误。将 17.7(6) 舍入到 18 应该不会有任何问题。

编辑:

真正的函数略有不同(我没有 Math.abs(a-b) 但我因此定义了“diff”变量。我可以向你们保证我将其声明为双 diff;-我不知道为什么它变成 int diff :) 已解决,谢谢:)

最佳答案

Math.absMath.min 在将 int 作为参数传递时都返回 int,因此您的代码正在执行整数除法而不是您期望的双除法。如果您将 310 替换为 3.010.0,您的代码应该按您的预期工作。

关于java - 简单方程未通过单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com