浮动百分比产生错误答案

时间:2012-07-29 18:31:32

标签: java android

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

给出输出:

Percentage (90): 270 Height: 359

当实际上它应该是323.1。

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

5 个答案:

答案 0 :(得分:2)

您按

计算90%
x * 90 / 100

x * 9 / 10

或溢出是一个问题

x - x / 10

如果您希望得到小数结果

x * 0.9

x * 0.90

答案 1 :(得分:2)

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

放100.0和90.0而不是100和90

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

答案 2 :(得分:1)

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

尝试(_leftBranch.getHeight() / 100d) * 90以获得更好的结果。

答案 3 :(得分:1)

你可以试试......

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

答案 4 :(得分:0)

你可以尝试这个 -

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