我有将 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(ab) 而是因此定义了“diff”变量。我可以向你们保证,我将其声明为双 diff;-我不知道为什么它变成 int diff :) 解决了谢谢 :)