-1

我尝试使用以下

rand()/getrandmax()*0.35+0.3

但它仍然会生成大于最大限制的数字。没有违反下限,但违反了最大值。

4

5 回答 5

6

要更正您自己的代码,您需要添加下限并将随机值 ( rand()/getrandmax()) 乘以上限和下限的差 (0.35 - 0.3)。

rand()/getrandmax()*0.05+0.3
于 2012-08-14T14:36:03.620 回答
2

我会用

   $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(); 每次创建随机数之前。

于 2012-08-14T14:38:07.527 回答
0

你的间隔是 0.05,所以你应该除以 20(或乘以 0.05)而不是乘以 0.35

于 2012-08-14T14:36:27.153 回答
-1
$min = .3;
$max = .35;

echo rand($min, $max); 

这是我知道的最简单的方法。

于 2012-08-14T14:35:42.847 回答
-1

这个函数的原型是:

int rand ( int $min , int $max )

所以只需调用:

rand (0.3, 0.35 );
于 2012-08-14T14:37:53.643 回答