基本上,我有这个循环为我提供公式的答案:
for(int i = 1; i <= 50; i = i + 1) {
double y = ((-1000/(i + 29)) + (100/3));
System.out.println(i + " | "+ y);
}
对于i的值(也称为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结尾。
当我将“ i”转换为双精度时:
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
答案 0 :(得分:0)
切换到:
for(int i = 1; i <= 50; i = i + 1) {
double y = ((-1000./(i + 29)) + ((100.)/3));
System.out.println(i + " | "+ y);
}