30

我需要生成一个随机数,到 PHP 中 2 位小数之间的第 10 位。

前任。介于 1.2 和 5.7 之间的兰特数。它将返回 3.4

我怎样才能做到这一点?

4

3 回答 3

61

您可以使用:

rand ($min*10, $max*10) / 10

甚至更好:

mt_rand ($min*10, $max*10) / 10
于 2012-05-02T18:27:30.553 回答
6

您可以执行以下操作:

rand(12, 57) / 10

PHP 的随机函数允许您只使用整数限制,但您可以将生成的随机数除以 10。

于 2012-05-02T18:25:44.057 回答
4

更通用的解决方案是:

function count_decimals($x){
   return  strlen(substr(strrchr($x+"", "."), 1));
}

public function random($min, $max){
   $decimals = max(count_decimals($min), count_decimals($max));
   $factor = pow(10, $decimals);
   return rand($min*$factor, $max*$factor) / $factor;
}

$answer = random(1.2, 5.7);
于 2012-05-02T18:36:53.853 回答