Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的代码给了我这个数学问题的错误答案?_Java_Math_Int - Fatal编程技术网

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

Java 为什么我的代码给了我这个数学问题的错误答案?,java,math,int,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;

我很抱歉,如果标题有点混乱,我很难说出我想说的话

这是我的密码:

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作为答案。你知道我为什么以及如何修复它吗?提前感谢。

X和Y都是整数(非十进制值)。如果执行整数除法,小数将被截断,从而导致意外的结果

X和Y都是整数(非十进制值)。如果执行整数除法,小数将被截断,从而导致意外的结果

你必须做两件事。 -将Z的类型更改为浮动。 -将A或B强制转换为在除法中浮动,因为它们都是整数

尝试此操作,您将得到正确的结果:

float Z = (float) X / Y;
你必须做两件事。 -将Z的类型更改为浮动。 -将A或B强制转换为在除法中浮动,因为它们都是整数

尝试此操作,您将得到正确的结果:

float Z = (float) X / Y;

因为你在除法整数。现在你知道用
float
double
来表示小数了。但这些可能是不准确的。当您需要精确性时,例如对于货币,请使用
BigDecimal
。因为您正在对整数进行除法。现在您知道了对小数使用
float
double
。但这些可能是不准确的。当你需要精确性时,比如金钱,使用
BigDecimal
。那么我应该把它们改成什么呢?不管怎样,我把最后3个改成了浮点数,现在它可以工作了。谢谢那么我应该把它们改成什么呢?不管怎样,我把最后3个改成了浮点数,现在它可以工作了。谢谢谢谢你的帮助!没问题。很高兴有帮助。谢谢你的帮助!没问题。很高兴这有帮助。