在尝试计算坡度时获得0

时间:2014-04-29 23:59:32

标签: java math int zero

这是给我0的特定等式,它应该给我-0.4(-2/5)

slope2 = ((yVals[i+2] - originY) / (xVals[i+2] - originX));

( - 2 - 0)/(2 + 3)

slope2是双

yVals []是一个int数组

origin是一个int

为什么它会一直返回0?我知道变量被正确调用,因为我在不同的val上做了一个println并且它们是正确的。

1 个答案:

答案 0 :(得分:4)

您正在Java中执行整数除法,其中使用int进行的数学必须产生int,因此除法会截断小数点以外的任何内容。这意味着在Java中,-2 / 50。分配的目标是double是不够的。其中一个操作数必须为double(或float)才能强制浮点运算。

/运算符的一个操作数强制转换为double以强制浮点运算。

slope2 = ( (double) (yVals[i+2] - originY) / (xVals[i+2] - originX));