java - 除法时输出为零?

标签 java math division

也许我看不到明显的东西但是:

int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (y2-y1)/(x2-x1);
System.out.println(res);

输出:

0.0

为什么?

最佳答案

问题是你在做整数运算。您需要进行类型转换才能首先将分子或分母转换为 float (例如):

int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (double)(y2-y1)/(x2-x1);
System.out.println(res);

如果对整数进行除法,结果将被截断为最接近的整数(产生与 floor 运算相同的结果)。例如:

0 / 2 == 0
1 / 2 == 0
2 / 2 == 1
3 / 2 == 1

等等

关于java - 除法时输出为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148977/

相关文章:

java - 我的勾选方法搞砸了

java - Android 相机应用拍照后延迟

algorithm - 快速傅立叶变换中数据间隔的影响

html - CSS 在悬停 DIV 时更改超链接颜色

java - 文本选择在 vaadin 应用程序内的 iframe 中不起作用

java - 无法终止 Windows Server 上的 java 进程(无需硬重启)

algorithm - 确定 n 是否为具有整数边的三角形的斜边

javascript - 在 JavaScript 中从一组数字中获取公因数

python - 在python中检查一个数字是否可以被另一个数字整除的最快方法

java - 变量改变值而不在代码中改变它