2011-12-20 14 views
5

मैं कई स्थानों पर नीचेसमझाओ Math.floor (math.random())

$('a.random-color').hover(function() { //mouseover 
    var col = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')'; 
    $(this).animate({ 
     'color': col, 
     'paddingLeft': '20px' 
    },1000); 
    },function() { //mouseout 
    $(this).animate({ 
     'color': original, 
     'paddingLeft': '0' 
    },500); 
    }); 
}); 

इस्तेमाल क्यों किया जाता Math.floor() और Math.random() तरह Math.floor() और Math.random()

का उपयोग कर देखा है?

उत्तर

10

Math.random आप के बीच 0 (सम्मिलित) और 1 (अनन्य) एक फ्लोटिंग बिंदु संख्या दे देंगे।

गुणा कि 256 से आप 256 (अनन्य) के माध्यम से सीमा 0 (सम्मिलित) में एक नंबर, लेकिन अभी भी चल बिन्दु दे देंगे।

उस नंबर की मंजिल लेना आपको पूर्णांक 0 और 255 (दोनों समावेशी) के बीच देगा।

यह 0 से 255 कि आप rgb(72,25,183) तरह आरजीबी मूल्यों के निर्माण के लिए जरूरत के लिए पूर्णांक है।

1

Math.floor एक पूर्ण संख्या दे देंगे और दशमलव से छुटकारा मिलता है।

math.random 0 और 1 और इसलिए बीच की एक संख्या लौटाता है जब 256 Thats साथ गुणा तुम क्यों मंजिल उपयोग करने के लिए दशमलव अन्यथा rgb मूल्यों से काम नहीं चलेगा से छुटकारा पाने के लिए चाहते हैं दशमलव संख्याओं का उत्पादन करेगा।

1

Math.floor()Number की दशमलव भाग ड्रॉप करने के लिए है। यह Math.ceil() के विपरीत है।

तुम भी Math.floor() के रूप में ही प्राप्त करने के लिए (हालांकि निश्चित रूप से floor() विधि सबसे करने के लिए और अधिक पठनीय है) की विपरीत बिटवाइज़ ऑपरेटर (~~) दोगुना कर सकते हैं।

~~(Math.random() * 256) 
2

ऐसा लगता है एक यादृच्छिक रंग वांछित है - प्रत्येक घटक यादृच्छिक के साथ एक 0 और 255 के बीच

Math.random() पर एक यादृच्छिक संख्या देता है [0,1) (यानी यह वास्तव में शून्य या अप करने के लिए हो सकता है लेकिन एक को छोड़कर)।

256 से कि यादृच्छिक मूल्य गुणा) रेंज [0256 (यानी यह 255.99 हो सकता है पर एक यादृच्छिक संख्या देता है, लेकिन कभी 256)। लगभग हो गया है, लेकिन काफी नहीं।

Math.floor() निकटतम पूर्ण पूर्णांक तक नीचे की संख्या को गोल करता है, जिसके परिणामस्वरूप वांछित [0,255] पर एक पूर्णांक होता है।

1

Math.Random 0 और 1 के बीच मान देता है। आप इसे 256 के साथ गुणा कर रहे हैं, इसलिए यह 0 और 256 के बीच कुछ फ्लोट मान वापस कर देगा। Math.floor इससे अंश मान को छोड़ देगा।

0

~~Number केवल सकारात्मक संख्या के लिए Math.floor() है। ऋणात्मक संख्याओं के लिए, यह Math.ceil() है।

सकारात्मक संख्या के लिए आप उपयोग कर सकते हैं:

Math.floor(x) == ~~(x) 

Math.round(x) == ~~(x + 0.5) 

Math.ceil(x) == ~~(x + 1) 

ऋणात्मक संख्याओं के लिए आप उपयोग कर सकते हैं:

Math.ceil(x) == ~~(x) 

Math.round(x) == ~~(x - 0.5) 

Math.floor(x) == ~~(x - 1) 
संबंधित मुद्दे