我尝试使用以下
rand()/getrandmax()*0.35+0.3
但它仍然会生成大于最大限制的数字。没有违反下限,但违反了最大值。
要更正您自己的代码,您需要添加下限并将随机值 ( rand()/getrandmax()
) 乘以上限和下限的差 (0.35 - 0.3)。
rand()/getrandmax()*0.05+0.3
我会用
$min = 30;
$max = 35;
$accuracy = 1000000;
$random_number = rand($min*$accuracy, $max*$accuracy)/(100*$accuracy);
正如 PHP 手册所说:
rand(int $min, int $max)
http://www.php.net/manual/en/function.rand.php
如果你使用 PHP < 4.2.0 至少调用 srand(); 每次创建随机数之前。
你的间隔是 0.05,所以你应该除以 20(或乘以 0.05)而不是乘以 0.35
$min = .3;
$max = .35;
echo rand($min, $max);
这是我知道的最简单的方法。
这个函数的原型是:
int rand ( int $min , int $max )
所以只需调用:
rand (0.3, 0.35 );