0
System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100) * 90 + " Height: " + _leftBranch.getHeight());

给出输出:

Percentage (90): 270 Height: 359

事实上,它应该是 323.1。

谁能告诉我这里发生了什么?

4

5 回答 5

2

你计算 90%

x * 90 / 100

或者

x * 9 / 10

或者如果溢出是一个问题

x - x / 10

如果您期望小数结果,您可以这样做

x * 0.9

或者

x * 0.90
于 2012-07-29T18:34:08.100 回答
2

因为计算是以整数类型完成的。

用 100.0 和 90.0 代替 100 和 90

第一部分计算结果为 3.59。但它只考虑整数部分,即 3 因此结果为 270

于 2012-07-29T18:37:26.440 回答
1

除以/integers也将返回整数(除法的余数将被忽略)。

争取(_leftBranch.getHeight() / 100d) * 90更好的结果。

于 2012-07-29T18:35:39.700 回答
1

您可以尝试以下...

System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100.0) * 90.0 + " Height: " + _leftBranch.getHeight());
于 2012-07-29T18:44:55.553 回答
0

你可以试试这个 -

System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100D) * 90 + " Height: " + _leftBranch.getHeight());
于 2012-07-31T05:06:19.347 回答