使用PHP生成两个小数之间的随机十进制

Nic*_*kam 23 php random

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

防爆.兰特数介于1.2和5.7之间.它将返回3.4

我怎样才能做到这一点?

cod*_*ict 48

您可以使用:

rand ($min*10, $max*10) / 10
Run Code Online (Sandbox Code Playgroud)

甚至更好:

mt_rand ($min*10, $max*10) / 10
Run Code Online (Sandbox Code Playgroud)

  • fwiw - 从 php 7.1 开始,rand 是 mt_rand 的别名 (2认同)

Del*_*man 6

你可以这样做:

rand(12, 57) / 10
Run Code Online (Sandbox Code Playgroud)

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


ggr*_*ner 6

更通用的解决方案是:

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);
Run Code Online (Sandbox Code Playgroud)