我有个奇怪的问题。
这段代码简单地将一个int除以另一个int,将结果存储在一个双精度变量中并打印出来:
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;它工作得很完美。
为什么我必须将我的变量转换为双精度才能得到真正的除法结果?
发布于 2013-05-02 20:00:03
A是int,b是int,除以a/b会得到一个int值,因此0.35转换为int就变成了0。
double d = (double)a/b;https://stackoverflow.com/questions/16337456
复制相似问题