System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100) * 90 + " Height: " + _leftBranch.getHeight());
给出输出:
Percentage (90): 270 Height: 359
当实际上它应该是323.1。
谁能告诉我这里发生了什么?
答案 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());