我想生成0到1之间的随机浮点值,不包括1,即。 [0, 1)
。我搜索了很多,但我找不到这个答案。我尝试了以下技巧,但它会产生负值
(double)rand()/(double)RAND_MAX-1;
答案 0 :(得分:2)
你需要括号来强制正确的顺序:
(double)rand()/((double)RAND_MAX + 1);
另请注意,您需要+1,而不是-1。
答案 1 :(得分:1)
你只需要除以RAND_MAX,包括+1。像这样:
(double)rand()/((double)RAND_MAX+1);