产生从负到正范围的随机浮动?

Kir*_*ira 10 c++ random range

我试图使用rand()在-50.0和50.0范围内产生一个随机浮点数.我到处寻找答案,但它处理的是int和%运算符.

Max*_*xpm 11

试试这个:

float RandomNumber(float Min, float Max)
{
    return ((float(rand()) / float(RAND_MAX)) * (Max - Min)) + Min;
}
Run Code Online (Sandbox Code Playgroud)


Dir*_*tel 5

试试这个:

  1. rand() 给你一个0到0之间的数字 RAND_MAX
  2. 除以RAND_MAX得到0到1之间的数字
  3. 你希望从-50到50的范围是100,所以乘以100.0
  4. 最后通过减去50.0将中心从50(每点3 0到100之间)移到零