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

次の出力が得られます。

Percentage (90): 270 Height: 359

実際には 323.1 である必要があります。

ここで何が起こっているのか誰か教えてもらえますか?

4

5 に答える 5

2

計算は整数型で行われるためです。

100 と 90 の代わりに 100.0 と 90.0 を入れます

計算の最初の部分は 3.59 になります。しかし、それは3である整数部分のみを考慮しているため、結果は270です

于 2012-07-29T18:37:26.440 に答える
2

で 90% を計算します。

x * 90 / 100

また

x * 9 / 10

またはオーバーフローが懸念される場合

x - x / 10

小数の結果が期待される場合は、次のことができます

x * 0.9

また

x * 0.90
于 2012-07-29T18:34:08.100 に答える
1

/2で除算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 に答える