函数没有用double和int [duplicate]做数学

问题描述 投票:0回答:1

这个问题在这里已有答案:

基本上我有这个循环给我一个公式的答案:

for(int i = 1; i <= 50; i = i + 1) {
    double y = ((-1000/(i + 29)) + (100/3));
    System.out.println(i + " | "+ y);
}

对于i(aka.x)1-> 50的值,该循环应该给出y的值。

这是它输出的内容:

1 | 0.0
2 | 1.0
3 | 2.0
4 | 3.0
5 | 4.0
6 | 5.0
7 | 6.0
etc until 50

它不应该每次都以.0结尾。

当我把'我'变为双重时:

for(int i = 1; i <= 50; i = i + 1) {
    double y = ((-1000/((double)i + 29)) + (100/3));
    System.out.println(i + " | "+ y);
}

它输出:

1 | -0.3333333333333357
2 | 0.741935483870968
3 | 1.75
4 | 2.6969696969696955
5 | 3.5882352941176485
6 | 4.428571428571427
7 | 5.222222222222221
etc until 50

然而。只需将功能放入图形软件(我尝试了wolfram alpha,desmos,symbolab并手动计算y)。我得到的结果与我的Java循环不同。

这是我的程序应该输出的(到3dp)

1 | 0
2 | 1.083
3 | 2.083
4 | 3.030
5 | 3.922
6 | 4.762
7 | 5.556
etc. i dont want to write these all out

我在这里做错了什么?

我希望能听到某人的声音。

谢谢,

-WDK

java math int double
1个回答
0
投票

切换到:

    for(int i = 1; i <= 50; i = i + 1) {
        double y = ((-1000./(i + 29)) + ((100.)/3));
        System.out.println(i + " | "+ y);
    }
© www.soinside.com 2019 - 2024. All rights reserved.