在[0,1]之间生成随机

时间:2015-11-29 18:30:02

标签: c++ c random

我想生成0到1之间的随机浮点值,不包括1,即。 [0, 1)。我搜索了很多,但我找不到这个答案。我尝试了以下技巧,但它会产生负值

(double)rand()/(double)RAND_MAX-1;

2 个答案:

答案 0 :(得分:2)

你需要括号来强制正确的顺序:

(double)rand()/((double)RAND_MAX + 1);

另请注意,您需要+1,而不是-1。

答案 1 :(得分:1)

你只需要除以RAND_MAX,包括+1。像这样:

(double)rand()/((double)RAND_MAX+1);