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

Generate random between [0, 1)

本文关键字:之间 随机      更新时间:2023-10-16

我想生成一个介于0和1之间的随机浮点值,不包括1,即[0, 1)。我找了很多,但都找不到答案。我已经尝试了以下技巧,但它会生成负值

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

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

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

还要注意,你需要+1,而不是-1。

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

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