这是一个特定的等式,当它应该给我 -0.4 (-2/5) 时却给了我 0
slope2 = ((yVals[i+2] - originY) / (xVals[i+2] - originX));
(-2 - 0)/(2 + 3)
slope2 是双斜率
yVals[] 是一个整型数组
来源是一个整数
为什么一直返回0?我知道变量被正确调用,因为我对不同的 vals 进行了 println,它们是正确的。
最佳答案
您正在 Java 中执行整数除法,其中使用 int
完成的数学运算必须产生 int
,因此除法会截断小数点后的任何内容。这意味着在 Java 中,-2/5
是 0
。赋值的目标是 double
是不够的。操作数之一必须是 double
(或 float
)以强制进行浮点运算。
将 /
运算符的一个操作数转换为 double
以强制进行浮点运算。
slope2 = ( (double) (yVals[i+2] - originY) / (xVals[i+2] - originX));
关于java - 尝试计算斜率时得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377377/