一尘不染

Java-整数除法:如何产生双精度?

java

对于此代码块:

int num = 5;
int denom = 7;
double d = num / denom;

的值d就是0.0。它可以通过强制转换来工作:

double d = ((double) num) / denom;

但是还有另一种方法来获得正确的double结果吗?我不喜欢强制转换原语,谁知道会发生什么。


阅读 467

收藏
2020-02-24

共1个答案

一尘不染

double num = 5;

这样可以避免强制转换。但是你会发现强制转换的定义很明确。你不必猜测,只需检查JLS即可。从int到double是一个不断扩大的转换。从第5.1.2节开始:

2020-02-24