PHP 两位小数之间的随机小数,步长为 0.5

PHP random decimal between two decimals with step 0.5

我想用步长 0.5 在两个十进制数之间创建随机数。

示例:0、0.5、1、1.5、2、2.5、3、3.5、4、4.5、5...

使用PHP生成两位小数之间的随机小数

到目前为止,我可以用一个小数点逗号生成 0 到 5 之间的数字。

如何整合0.5步?

$min = 0;
$max = 5;
$number = mt_rand ($min * 10, $max * 10) / 10;

这应该适合你:

$min = 0;
$max = 5;
echo $number = mt_rand($min * 2, $max * 2) / 2;

另一种可能的方式:

function decimalRand($iMin, $iMax, $fSteps = 0.5)
{
    $a = range($iMin, $iMax, $fSteps);

    return $a[mt_rand(0, count($a)-1)];
}

更直观,更少不必要的操作:

$min = 0;
$max = 5;
$step = 0.5;
// Simple for the case above.
echo $number = mt_rand($min * 2, $max * 2) * $step;

更一般,有点复杂的案例

echo $number = mt_rand(floor($min / $step), floor($max / $step)) * $step;

mt_rand offical docs以防万一