这个表达式如何工作:Num * rand()/ RAND_MAX?

时间:2015-03-31 16:51:36

标签: c++

这个表达式如何运作?

 Num*rand() / RAND_MAX

例如,如果我将数字替换为7.7,则会为我提供从0.7.double)的值。

2 个答案:

答案 0 :(得分:3)

rand()函数生成0RAND_MAX之间的整数值。因此rand()/RAND_MAX会在0 and 1之间生成实际值。所以在下面的代码中我们有 0 <= val <= n其中n可以是整数或实数。

double val = n * rand()/RAND_MAX;

答案 1 :(得分:1)

标记到MrGreen的答案,我发现当n是整数时,使用0时我会得到double val = n * rand()/RAND_MAX;的输出。但是,这可以通过稍加补充来解决:

double val = (double) n * rand()/RAND_MAX;