【问题标题】:Why does it always return original value?为什么它总是返回原始值?
【发布时间】:2012-06-29 05:26:01
【问题描述】:

我有以下功能

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;

}

它总是返回变量“Value”的结果,即使它匹配不同的情况。 例如。它转到“返回(整数)((值* 12)/ 52);”但随后返回 0 并返回“值”。可能是一个愚蠢的问题,但坚持这一点。

【问题讨论】:

    标签: java android syntax casting


    【解决方案1】:

    使用int.并检查您的Value 始终为0。

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

    【讨论】:

      【解决方案2】:

      看起来p_Value 的长度始终为 0。此外,使用大写首字母命名变量也是不好的做法。

      【讨论】:

        【解决方案3】:

        您只需要将方法的返回类型从 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) 
        

        【讨论】:

          猜你喜欢
          • 2021-09-11
          • 2020-04-04
          • 2019-12-05
          • 1970-01-01
          • 2022-12-11
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 2014-01-07
          相关资源
          最近更新 更多