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个改成了浮点数,现在它可以工作了。谢谢谢谢你的帮助!没问题。很高兴有帮助。谢谢你的帮助!没问题。很高兴这有帮助。