2012-06-29 39 views
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; 

} 

它總是返回變量「值」,即使它在不同的情況相匹配的calue。例如 。它轉到「返回(整數)((值* 12)/ 52);」但是然後返回0並返回「Value」。可能是一個愚蠢的問題,但堅持這一點。

回答

2

使用int。而檢查Value始終爲0

int Value = Integer.parseInt(p_Value); and return type also `int`. 
0

它看起來像p_Value的長度始終爲0.另外,使用大寫的第一個字母命名變量是個不好的做法。

0

你只需要從整數改變方法的返回類型增加一倍或長或漂浮 因爲INT總是返回數字不是一個小數部分和你的計算返回.something並轉化爲0,所以要確保使用這種計算方法的返回類型始終是雙重或浮動等

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

        to 

private double calculateWeeklyValue(String p_Value, String Frequency)