【发布时间】:2013-09-24 20:07:56
【问题描述】:
这个真的让我很困惑。我正在编写一个带有一些随机变化的损坏算法。当我计算变化时,这就是它的样子。
Random random = new Random();
Double variation = random.Next(85, 115) / 100;
Double damage = restOfAlgorithm * variation;
当我这样做时,变化总是输出 0。但是,如果我像下面这样,它将输出预期的结果。
Random random = new Random();
Double variation = random.Next(85, 115);
Double damage = restOfAlgorithm * (variation / 100);
为什么会这样?
【问题讨论】:
-
首先是
Next,而不是next。尝试random.Next(85, 115) / 100.0;避免整数除法 -
因为你在做整数除法?
-
100 是一个整数。
(double)100 -
@I4V 在我的代码中有这样的内容,编辑了问题。
-
使用
random.Next(85, 115) / 100d;