2012-05-02 60 views
18

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?

+0

Đó 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} –

Trả lời

34

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 
4

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

5

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); 
+0

đố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

Các vấn đề liên quan