java - Double 函数不返回 Double 值?

标签 java double return

public class Nitin12assignA6 {

    public static void main(String args[]) throws IOException {
        series ob = new series();
        ob.input();
        ob.findSum();
        ob.display();
    }
}
    class series {

        int x, n;

        double sum;

        series() {
            x = n = 0;
            sum = 0.0f;
        }

        void input() throws IOException {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("\nEnter the value of x = ");
            x = Integer.parseInt(in.readLine());
            System.out.print("Enter the value of n = ");
            n = Integer.parseInt(in.readLine());
        }

        void display() {
            System.out.println("The sum of Series upto " + n + " terms is: " + sum);
            System.out.println();
        }

        long fact(int num) {
            if(num == 1) {
                return 1;
            }
            return num * fact(num - 1);
        }

        int power(int num, int exp) {
            if(exp == 1) {
                return 1;
            }
            return num * power(num, exp - 1);
        }

        double term(int numr, long denom) {
            return(numr / denom);
        }

        void findSum() {
            int u = 2, l = 4;
            sum = 1.0f;
            for(int i = 0; i < n; i++) {
                if(l % 8 == 0) {
                    sum += term(power(x, u), fact(l));
                    // Test start
                    System.out.println("add" + sum + " power " + power(x, u) + " fact " + fact(l) + " x " + x + " u " + u
                            + " l " + l);
                    System.out.println("term " + term(power(x, u), fact(l)));
                    System.out.println("test term " + term(5, 2)); // printing 2.0
                                                                    // instead of 2.5
                    // Test end
                } else {
                    sum -= term(power(x, u), fact(l));
                    // Test start
                    System.out.println("minus" + sum + " power " + power(x, u) + " fact " + fact(l) + " x " + x + " u " + u
                            + " l " + l);
                    System.out.println("term " + term(power(x, u), fact(l)));
                    // Test end
                }
                u += 2;
                l += 4;
            }
        }
    }

//double term(int numr,long denom) //{return (numr/denom);} 此函数不返回 double 值。请帮助...这个程序是找到一个序列的总和多达 n 项。示例 - 测试项返回 2.0 而不是 2.5...谢谢。

最佳答案

您需要在除法之前显式转换为 double。

double term(int numr, long denom) {
     return ((double)numr / denom);
}

关于java - Double 函数不返回 Double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877020/

相关文章:

java - 正确除以 double 即可得到正确的金额

C++ 读取两个数字但没有空格,RINEX 文件

javascript - 为什么会出现这样的结果?

c - 在另一个函数中使用一个函数的返回值 (C)

java - 从 CSV 文件读取时出现 NumberFormatException 错误

java - 将 Java 中的 3D 仿射变换构建导入到 R

java - 如何覆盖 Jersey 2.23 中的内置异常映射器?

java - 比较 2 个列表中的常见数字

java - 将文件中的字符串值解析为 float ,其中字符串包含逗号

c - 未使用的返回值的 ast 匹配器