Tôi cần tạo một số ngẫu nhiên, đến vị trí thứ 10 giữa 2 số thập phân trong PHP.Sử dụng PHP để tạo ngẫu nhiên số thập phân Beteween Hai số thập phân
Ví dụ: Một số rand giữa 1,2 và 5,7. Nó sẽ trả lại 3,4
Tôi làm cách nào để thực hiện việc này?
Tôi cần tạo một số ngẫu nhiên, đến vị trí thứ 10 giữa 2 số thập phân trong PHP.Sử dụng PHP để tạo ngẫu nhiên số thập phân Beteween Hai số thập phân
Ví dụ: Một số rand giữa 1,2 và 5,7. Nó sẽ trả lại 3,4
Tôi làm cách nào để thực hiện việc này?
Bạn có thể sử dụng:
rand ($min*10, $max*10)/10
hoặc thậm chí tốt hơn:
mt_rand ($min*10, $max*10)/10
Bạn có thể làm một cái gì đó như:
rand(12, 57)/10
hàm ngẫu nhiên của PHP cho phép bạn chỉ sử dụng giới hạn số nguyên, nhưng sau đó bạn có thể chia kết quả số ngẫu nhiên bằng 10
Một giải pháp tổng quát hơn sẽ là:
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);
đối với những người theo đuổi giải pháp này, ngày nay cách tiếp cận tốt hơn một chút là nhúng hàm 'count_decimals()' như là một đóng trong 'random()', vì vậy nó được ẩn khỏi phạm vi toàn cục. – igorsantos07
Đó là ngớ ngẩn, nhưng tôi cần một hàm. Như sau: chức năng drand ($ thấp, $ cao) { \t \t trả về mt_rand ($ low * 100, $ high * 100)/100; \t} –