Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么它总是返回原始值?_Java_Android_Syntax_Casting - Fatal编程技术网

Java 为什么它总是返回原始值?

Java 为什么它总是返回原始值?,java,android,syntax,casting,Java,Android,Syntax,Casting,我有以下功能 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; el

我有以下功能

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”的计算值,即使它匹配不同的情况。
例如,它转到“return(Integer)((Value*12)/52)”;但随后转到return0并返回“Value”。这可能是一个愚蠢的问题,但仍停留在这个问题上。

看起来
p\u值的长度总是0。此外,用大写字母命名变量也是一种不好的做法。

使用
int
。并检查
值始终为0

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

您只需要将方法的返回类型从Integer更改为double、long或float 因为int总是返回数值,而不是小数部分,并且您的计算返回的是
。某些东西
,被转换为
0
,所以请确保使用这种计算方法的返回类型始终是double或float等

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

                     to 

private double calculateWeeklyValue(String p_Value, String Frequency)