1

誰かが何が悪いのか教えてもらえますか?電卓にlowとhighの方程式を入力すると、low = 118.129 high=113.629になります。
しかし、何らかの理由で、コードを実行すると、lowとhighの両方で119.0が表示されます。

match_FRC = 82;//Double.parseDouble(FRC_match_textbox.getText().toString());
match_DTR = 1.455;//Double.parseDouble(DTR_match_textbox.getText().toString());

//math functions 
low = Math.round((match_FRC * match_DTR)/((1/100)+1));
high = Math.round((match_FRC * match_DTR)/((5/100)+1));
4

3 に答える 3

6

整数の代わりに浮動小数点定数を使用する必要があります。例:

low = Math.round((match_FRC * match_DTR)/((1.0 / 100)+1));

そのままでは、your((1 / 100) + 1)は正確に1と評価される整数式です。

1into 1.0(または100into )を作成する100.0と、他のオペランド(および式全体)が浮動小数点に昇格します。

于 2012-06-02T20:23:39.467 に答える
0

私は数学のように単純です!

5/100 (Integer) = 0
0 + 1 = 1
82*1.455 = 119.31
119.31 / 1 = 119.31
round ( 119.31 ) = 119

100〜100.0に変更するだけです

low = Math.round((match_FRC * match_DTR)/((1/100.0)+1));
high = Math.round((match_FRC * match_DTR)/((5/100.0)+1));
于 2012-06-02T20:27:50.213 に答える
0

Math.round()電卓に入力していますか?

Math.round()long小数部のない、を提供します。lowしたがって、フラクティオアンの部分を含むあなたの期待には根拠がありません。

于 2012-06-03T05:37:19.927 に答える