为什么我的双打数学出错了?

Set*_*ari 0 java math double

这就是我创造q的方式

Double q = ((r * (i/5)) + y);
Run Code Online (Sandbox Code Playgroud)

此时其他变量的值是

r = 3.470694142992069E-5
i = 1
y = -116.30237535361584
Run Code Online (Sandbox Code Playgroud)

q = -116.30237535361584
Run Code Online (Sandbox Code Playgroud)

这个数学有什么问题吗?(Java)

q should be -116.30236841222755
Run Code Online (Sandbox Code Playgroud)

deb*_*cey 6

i和5都是整数,因此(i/5)部分求值为整数(0).这抵消了乘以r,所以你只剩下y的值.


Bal*_*a R 5

尝试

Double q = ((r * ((double)i/5)) + y);
Run Code Online (Sandbox Code Playgroud)

这是完整的代码.

class Main
{
        public static void main (String[] args) throws java.lang.Exception
        {
                double r = 3.470694142992069E-5;
                int i = 1;
                double y = -116.30237535361584;
                Double q = ((r * ((double)i/5)) + y);
                System.out.println(q);

        }
}
Run Code Online (Sandbox Code Playgroud)

输出:-116.30236841222755