将 int 转换为 double java

Casting int to double java

我是 java 的新手。我读到 here 当我们从 int 类型转换为 double 类型时,它会自动发生(因为它扩大了转换范围,而不是缩小了转换范围)。但是,当我使用以下代码自己尝试时:

int a = 3;

int b = 11;

double sum = a/b;  //widening casting happens automatically

...但得到的答案是 0.0 而不是 0.27。我知道这是错误的,因为 a/b 将 return 键入 int(0) 然后 int 将成为 0.0 的双精度值。但是,我不确定如何解决这个问题。

非常感谢您的帮助!

是的,int 值会自动转换为 double 值,但它是计算 a/b 结果 使用 int 规则执行(因为两个参与者都是 int)。

换句话说,在int世界完成时,前3除以11,即0。然后将 0 转换为双精度值 0.0,然后将其分配给 sum.

您可以强制使用 double 精度完成计算,方法是将任一值转换为 double,例如:

double sum = a / (double) b;