如何在PHP中使用x十进制数字的范围之间获得随机浮动?
例如,如何在0到20之间获得一个5位十进制数的随机浮点数?
答案 0 :(得分:1)
解决方案马克贝克建议可能是最好的。此外,您不必对这些大数字进行硬编码以提高可读性:
$min = 0;
$max = 20;
$decimals = 5;
$divisor = pow(10, $decimals);
$randomFloat = mt_rand($min, $max * $divisor) / $divisor;
我只是想知道你为什么需要正好5位小数。如果只是为了演示,这意味着你要将它作为字符串输出,你可以使用这个解决方案:
$num = $min + lcg_value() * ($max - $min);
$randomFloat = sprintf("%+.5f", $num);
PHP函数lgc_value
返回随机的(伪)随机浮点数,范围为(0,1)。函数sprintf
返回根据格式生成的字符串。 %+.5f
表示带有5位小数的浮点数。