为什么我的代码给了我这个数学问题的错误答案?

时间:2016-07-02 01:20:52

标签: java math int

我很抱歉,如果标题有点令人困惑,我在试图说出我想说的话时遇到了一些麻烦。

这是我的代码:

public class Assignment3 {

    public static void main(String[] args) {
        int A = 100;
        int B = 20;
        int C = 30;
        int X = 4 * A;
        int Y = 3 * (B + C);
        int Z = X / Y;

        System.out.println("The value of A is " + A + ".");
        System.out.println("The value of B is " + B + ".");
        System.out.println("The value of C is " + C + ".");
        System.out.println("The answer is " + Z + ".");

    }

}

当我知道答案是2.6重复时,它一直给我2个答案。任何想法为什么以及如何解决它?提前谢谢。

2 个答案:

答案 0 :(得分:3)

X和Y都是整数(非十进制值)。如果执行整数除法,则会截断小数,从而导致意外答案。

答案 1 :(得分:1)

你必须做的两件事。 - 将Z的类型更改为float。 - 投射A或B以漂浮在分区中,因为它们都是整数。

试试这个,你会得到正确的结果:

float Z = (float) X / Y;