2012-05-02 11 views
18

मुझे PHP में 2 दशमलव के बीच 10 वें स्थान पर यादृच्छिक संख्या उत्पन्न करने की आवश्यकता है।यादृच्छिक दशमलव बेवकूफ बनाने के लिए PHP का उपयोग करें दो दशकों

पूर्व। 1.2 और 5.7 के बीच एक रैंड संख्या। यह 3.4

मैं यह कैसे कर सकता हूं?

+0

यह मूर्खतापूर्ण है, लेकिन मैं एक समारोह की जरूरत है। निम्नानुसार है: फ़ंक्शन ड्रैंड ($ कम, $ उच्च) { \t \t वापसी mt_rand ($ कम * 100, $ उच्च * 100)/100; इस समाधान के बाद जाने वाले लोगों के लिए \t} –

उत्तर

34

जिसके परिणामस्वरूप यादृच्छिक संख्या विभाजित कर सकते हैं आप उपयोग कर सकते हैं:

rand ($min*10, $max*10)/10 

या और भी बेहतर:

mt_rand ($min*10, $max*10)/10 
4

आप की तरह कुछ कर सकता है:

rand(12, 57)/10 

PHP के यादृच्छिक समारोह आप केवल पूर्णांक सीमा का उपयोग करने की अनुमति देता है, लेकिन आप तब तक 10

5

एक अधिक सामान्य समाधान होगा:

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

, आजकल थोड़ा सा बेहतर दृष्टिकोण 'count_decimals() 'फ़ंक्शन को' यादृच्छिक() 'के अंदर बंद करने के रूप में एम्बेड करना होगा, इसलिए यह वैश्विक दायरे से छिपा हुआ है। – igorsantos07

संबंधित मुद्दे