Мне нужно создать случайное число, до 10-го пятна между двумя десятичными знаками в PHP.
Ex. Число rand между 1.2 и 5.7. Он вернет 3.4
Как я могу это сделать?
Вы можете использовать:
rand ($min*10, $max*10) / 10
или даже лучше:
mt_rand ($min*10, $max*10) / 10
Более общее решение было бы:
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);
Вы могли бы сделать что-то вроде:
rand(12, 57) / 10
Случайная функция PHP позволяет использовать только целые пределы, но затем вы можете разделить полученное случайное число на 10.