我们如何在Float数字的范围内生成随机数(在delphi xe3中)?
例如,在[0.10 to 0.90]
之间随机化数字。
我需要给出如下结果:
[ 0.20 , 0.32 , 0.10 , 0.50 ]
感谢您提供解决方案......
答案 0 :(得分:5)
另一种选择是使用RandomRange
(返回:AFrom <= r < ATo
),如下所示:
RandomRange(10, 90 + 1) / 100
或
RandomRange(10, 90 + 1) * 0.01
将返回0.10到0.90(包括0.90)范围内的数字
答案 1 :(得分:4)
var
float : Double;
float := Random; // Random float in range: 0 <= float < 1
float := 0.1 + float*0.8 // 0.1 <= float < 0.9
要初始化随机数生成器,请在第一次调用Random
函数之前,先调用Randomize
或设置RandSeed
参数。
不这样做,每次运行程序时都会生成相同的序列。但请注意,重新编译其他编译器版本时无法保证此序列。
答案 2 :(得分:1)
function RandomRangeF(min,max:single):single;
var
float : single;
begin
float := Random;
result := min + float* (max-min);
end;
答案 3 :(得分:-1)
这有点厚颜无耻,但这里是:取决于浮点后您想要多少个数字。例如,如果您想要 1 个数字,您可以在 100 - 999 范围内生成然后除以 10。或者 1000 - 9999 并除以 100。