我搜索了一下,仍然找不到这个问题的答案。
我正在计算 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/