कैसे सापेक्ष (%) ऑपरेटर काम करता है ECMA-262 §11.5.3 में परिभाषित किया गया है। तो कैसे सापेक्ष ऑपरेटर के संदर्भ के बिना
1 % -Infinity returns 1
...
1 % -2 returns 1
1 % -1 returns 0
1 % 0 returns NaN
1 % 1 returns 0
1 % 2 returns 1
...
1 % Infinity returns 1
तैरता के लिए,
1 % -1.1 returns 1
1 % 0.1 returns 0.09999999999999995
1 % 0.6 returns 0.4
1 % 0.5 returns 0
1 % 0.4 returns 0.19999999999999996
1 % 0.9 returns 0.09999999999999998
1 % 1.1 returns 1
:
पूर्णांकों के लिए: कुछ quirks रहे हैं, ECMAScript सापेक्ष ऑपरेटर तैरता के साथ-साथ पूर्णांकों स्वीकार करता है लागू किया जा रहा है, यह निर्धारित करना बहुत मुश्किल है कि इसका उपयोग क्यों किया जा रहा है। सबसे अच्छा कोड का दस्तावेज होगा, लेकिन मुझे लगता है कि यह उपलब्ध नहीं है।
एक प्रयोग है, जहां एक पूर्णांक की उम्मीद है, 0 और 1 के रूप में झूठी और बाकी सब कुछ के रूप में सही मूल्यांकन करने के लिए है, तो:
if (1 % n) {
// do this if n is something other than 0 or 1
}
"1 सापेक्ष कुछ भी (या 1% एन) 1 है" - जब तक एन 1 है, इस मामले में परिणाम शून्य है। –
समझने की मुख्य बात यह है कि गणितीय नोटेशन में, '(mod n) 'अभिव्यक्ति के दोनों * पक्षों पर भी लागू होता है, यहां तक कि हालांकि यह आमतौर पर केवल दाईं ओर लिखा जाता है ( देखें [मॉड्यूलर नोटेशन के बारे में उलझन में] (http://math.stackexchange.com/questions/78367/confused-about-modular-notations))। तो, ब्लेंडर के उत्तर को छोड़कर, अभिव्यक्ति 'ए ≡ 1 (मॉड एन)' को "≡ 1'" के रूप में पढ़ा जाना चाहिए जब सिस्टम लिया गया 'मॉड्यूलो एन'', या '% N == 1 % एन' (या सिर्फ '% n == 1', चूंकि' 1% एन' हमेशा बराबर होता है 1)। – sevko