Java部门并没有按照我的预期进行。

标签 java division

我搜索了一下,仍然找不到这个问题的答案。

我正在计算 distances between tree nodes 的公式,在我的测试用例中,我的公式采用 node i 中的叶子数,然后除以 node i 中的叶数 + node j 中的叶子数
这些给了我1 and 2 respectively ,因为 i j 每片都有一片叶子。

我的问题是,当我将 1 除以 2 时,结果为零。

所有这些数字都是 double ,所以我不明白问题是什么。 。 .

这是我的代码:

formula1 = ((newNode.getLeftChild().getNumLeafs()) / (newNode.getLeftChild().getNumLeafs() + newNode.getRightChild().getNumLeafs()));

最佳答案

试试这个:

formula1 = ((double)(newNode.getLeftChild().getNumLeafs()) / (double)(newNode.getLeftChild().getNumLeafs() + (double)newNode.getRightChild().getNumLeafs()));

getNumLeafs() 可能返回一个 int 值

关于Java部门并没有按照我的预期进行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861153/

相关文章:

java - 如何使用 Flex 对数据网格中的 dd/mm/yy 日期格式进行排序?

java - 有没有办法获取 JavaFX 属性的所有绑定(bind)?

java - 是否可以将 ArrayList 除以 double 并创建一个新列表?

c - 数组中两个值的除法总是返回 0

c - 除十六进制数时的奇怪行为

division - ZX81 BASIC 中的快速除法检查

java - 输出问题,Java

java - 在if条件中使用分号的目的是什么?

java - 如何创建我的应用程序首选项的备份并在卸载后保留它 - 离线模式

c - 除法和类次的区别