在浮点范围内生成随机数

Use*_*ser 4 delphi delphi-xe3

我们如何在Float数字的范围内生成随机数(在delphi xe3中)?

例如,随机化数字之间[0.10 to 0.90].我需要给出如下结果:

[ 0.20 , 0.32 , 0.10 , 0.50 ]

谢谢你的解决方案

LU *_* RD 5

var
  float : Double;

  float := Random;  // Random float in range: 0 <= float < 1
  float := 0.1 + float*0.8 // 0.1 <= float < 0.9
Run Code Online (Sandbox Code Playgroud)

要初始化随机数生成器,请在调用之前调用Randomize或设置RandSeed参数Random在第一次函数。

不这样做,每次运行程序时都会生成相同的序列。但是请注意,在为另一个编译器版本重新编译时不能保证此顺序。


kob*_*bik 5

另一个选择是使用RandomRange(return :) AFrom <= r < ATo如下:

RandomRange(10, 90 + 1) / 100
Run Code Online (Sandbox Code Playgroud)

要么

RandomRange(10, 90 + 1) * 0.01
Run Code Online (Sandbox Code Playgroud)

将返回0.10到0.90范围内的数字(包括0.90)