重複の可能性:
php のランダム フロート
0 から 1.0 までのランダムな浮動小数点数 (0.4、0.8 など) を作成することは可能ですか? rand を使用しましたが、整数のみを受け入れます。
重複の可能性:
php のランダム フロート
0 から 1.0 までのランダムな浮動小数点数 (0.4、0.8 など) を作成することは可能ですか? rand を使用しましたが、整数のみを受け入れます。
mt_rand() / mt_getrandmax();
rand()
通常、プラットフォームのC実装に依存し、通常はrand()
非常に単純なパターンで数値を作成するため、この関数は避けてください。php.netでこのコメントを参照してください
更新:php 7.1では、rand()
が変更され、単なるエイリアスになりmt_rand()
ました。したがってrand()
、これでも使用できます。
単純に 10 で割るとどうなるでしょうか。
$randomFloat = rand(0, 10) / 10;
var_dump($randomFloat);
//eg. float(0.7)
$v = mt_rand() / mt_getrandmax();
それをします。
(質問の例のように)小数点以下1桁だけが必要な場合は、round()
取得する値だけ...
$v = round( $v, 1 );
...または 0 から 10 までの数値を計算し、10 で割ります。
$v = mt_rand( 0, 10 ) / 10;
Try this
// Generates and prints 100 random number between 0.0 and 1.0
$max = 1.0;
$min = 0.0;
for ($i = 0; $i < 100; ++$i)
{
print ("<br>");
$range = $max - $min;
$num = $min + $range * (mt_rand() / mt_getrandmax());
$num = round($num, 2);
print ((float) $num);
}
float *にキャストし、 で除算しgetrandmax()
ます。