我有一个奇怪的问题。
这段代码只是将一个整数除以另一个整数,将结果存储在一个双精度变量中,并打印出来:
int a = 200;
int b = 557;
double divisionResult = a / b;
System.out.println("Result: " + divisionResult);
执行此代码后,输出结果为:
Result: 0
这很奇怪,因为 200/557
是 0.3590664272890485
我注意到如果我在除法运算中将 a
和 b
转换成 double
类型
double divisionResult = (double) a / (double) b;
它完美地工作。
为什么我必须将变量转换为double才能获得真正的除法结果?
int
/int
=int
的结果。如果你想改变结果类型,你需要将至少一个参数的类型更改为浮点数,如float
或double
。 - Pshemo