我有一个奇怪的问题.
这段代码只是将一个int除以另一个int,将结果存储在一个double变量中并打印出来:
int a = 200;
int b = 557;
double divisionResult = a / b;
System.out.println("Result: " + divisionResult);
Run Code Online (Sandbox Code Playgroud)
执行此代码后,输出为:
Result: 0
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为200/557是0.3590664272890485
我注意到,如果我投a并b以double在分割线
double divisionResult = (double) a / (double) b;
Run Code Online (Sandbox Code Playgroud)
它完美地运作.
为什么我必须将变量转换为double来获得真正的除法结果?
Run Code Online (Sandbox Code Playgroud)int a = 1; int b = 10; int c = 3; int d = (1/10)*3 System.out.println(d) Result: 0
如何使此计算工作?向上或向下舍入?它应该是:(1/10)*3 = 0.1*3 = 0.3 = 0和(4/10)*3 = 0.4*3 = 1.2 = 1
非常感谢!