在之间生成随机
我想生成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。