Ответ 1
Вы можете использовать:
rand ($min*10, $max*10) / 10
или даже лучше:
mt_rand ($min*10, $max*10) / 10
Мне нужно создать случайное число, до 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.