System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100) * 90 + " Height: " + _leftBranch.getHeight());
次の出力が得られます。
Percentage (90): 270 Height: 359
実際には 323.1 である必要があります。
ここで何が起こっているのか誰か教えてもらえますか?
計算は整数型で行われるためです。
100 と 90 の代わりに 100.0 と 90.0 を入れます
計算の最初の部分は 3.59 になります。しかし、それは3である整数部分のみを考慮しているため、結果は270です
で 90% を計算します。
x * 90 / 100
また
x * 9 / 10
またはオーバーフローが懸念される場合
x - x / 10
小数の結果が期待される場合は、次のことができます
x * 0.9
また
x * 0.90
/
2で除算integers
しても整数が返されます (除算の余りは無視されます)。
(_leftBranch.getHeight() / 100d) * 90
より良い結果を目指してください。
以下を試すことができます...
System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100.0) * 90.0 + " Height: " + _leftBranch.getHeight());
あなたはこれを試すことができます -
System.out.println("Percentage (90): " + (_leftBranch.getHeight() / 100D) * 90 + " Height: " + _leftBranch.getHeight());