在之间生成随机

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

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

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

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

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

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

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