对于此代码块:
int num = 5; int denom = 7; double d = num / denom;
的值d就是0.0。它可以通过强制转换来工作:
double d = ((double) num) / denom;
但是还有另一种方法来获得正确的double结果吗?我不喜欢强制转换原语,谁知道会发生什么。
double
double num = 5;
这样可以避免强制转换。但是你会发现强制转换的定义很明确。你不必猜测,只需检查JLS即可。从int到double是一个不断扩大的转换。从第5.1.2节开始: