0

私は次の機能を持っています

private Integer calculateWeeklyValue(String p_Value, String Frequency) {

    if (p_Value.length() == 0)
        p_Value = "0";
    Integer Value = Integer.parseInt(p_Value);
    if (Frequency.equals("W"))
        return (Integer)Value;
    else if (Frequency.equals("F"))
        return (Integer)((Value / 2));
    else if (Frequency.equals("M"))
        return (Integer)((Value * 12) / 52);
    else if (Frequency.equals("Q"))
        return (Integer)((Value * 4) / 52);
    else if (Frequency.equals("Y"))
        return (Integer)(Value / 52);
    else
        return 0;

}

さまざまなケースに一致する場合でも、常に変数「値」の値を返します。たとえば。「return (Integer)((Value * 12) / 52);」になります。しかし、その後0を返し、「値」を返します。ばかげた質問かもしれませんが、これに固執しました。

4

3 に答える 3

2

.を使用して、常に 0 であることをint確認します。Value

 int Value = Integer.parseInt(p_Value); and return type also `int`.
于 2012-06-29T05:29:58.510 に答える
0

の長さp_Valueは常に 0 のようです。また、変数の名前の最初の文字を大文字にするのは悪い習慣です。

于 2012-06-29T05:29:17.603 に答える
0

メソッドの戻り値の型を Integer から double または long または float に変更する必要があるだけです。int は常に小数部ではなく数値を返し、計算が返さ.somethingれて変換される0ため、そのような計算方法の戻り値の型を使用するようにしてください。常に double または float など。

private Integer calculateWeeklyValue(String p_Value, String Frequency) {}

                     to 

private double calculateWeeklyValue(String p_Value, String Frequency) 
于 2012-06-29T05:38:19.173 に答える