将 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;
我是 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;