Java整数除法结果为double? [复制]
Posted
技术标签:
【中文标题】Java整数除法结果为double? [复制]【英文标题】:Java integer division result as double? [duplicate] 【发布时间】:2014-11-12 07:25:13 【问题描述】:我目前有这个代码:
int kills = 1;
int deaths = 2;
double kdr = 0;
if(kills > 0 && deaths == 0)
kdr = kills;
else if(kills > 0 && deaths > 0)
kdr = kills/deaths;
System.out.println(kdr);
你可以测试一下here。
为什么输出是 0.00 而不是 0.5?
【问题讨论】:
这是很多东西的复制品。仅仅因为您将操作的结果分配给double
并不会使操作本身使用 double
算术执行...
【参考方案1】:
如果kills/deaths
0,因为整数除法的输出是整数。然后将此0
强制转换为0.0
以适应您存储它的double
变量。
为了获得非整数结果,您必须将其中一个数字转换为 double :
kdr = (double)kills/deaths;
【讨论】:
谢谢。我应该尝试过,我只是假设在双精度下除法不需要演员。 @ThatGuy343 您的除法是对两个整数执行的,因此结果为整数,并且只有结果被强制转换为双精度,以适应您的 kdr 变量。【参考方案2】:因为您的输入值是整数。如果你将它们转换成双倍,你会得到预期的结果:
kdr = (double)kills/deaths;
【讨论】:
以上是关于Java整数除法结果为double? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android中将double转换为int? [复制]