java - 尝试计算斜率时得到 0

标签 java math int zero

这是一个特定的等式,当它应该给我 -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/50。赋值的目标是 double 是不够的。操作数之一必须是 double(或 float)以强制进行浮点运算。

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

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

关于java - 尝试计算斜率时得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377377/

相关文章:

java - 处理窗口而不关闭整个程序

c - 一个数字的最小底数,当以该底数表示时使其成为回文

java - 验证FFT算法的正确性

android - 如何用 int 值填充 Spinner

java - Java中Integer和int有什么区别?

java - 如何找到最大数组值的索引?

java - 如何检查h2嵌入式数据库是否已创建?

Java 毫秒精度

java - Math.pow 奇怪的结果

ios - 将整数传递给另一个 UIView