अगर मैंएंड्रॉयड: सापेक्ष के लिए जो ऑपरेटर (% ऋणात्मक संख्याओं के साथ काम नहीं करता है)
int a=(-2)%6
कोशिश मैं -2 4 के बजाय।
नकारात्मक संख्याओं के साथ ऐसा क्यों व्यवहार करता है?
अगर मैंएंड्रॉयड: सापेक्ष के लिए जो ऑपरेटर (% ऋणात्मक संख्याओं के साथ काम नहीं करता है)
int a=(-2)%6
कोशिश मैं -2 4 के बजाय।
नकारात्मक संख्याओं के साथ ऐसा क्यों व्यवहार करता है?
%
जावा में एक शेष के संचालन करता है।
एक उचित मापांक पाने के लिए आपको एक समारोह में शेष का उपयोग कर सकते हैं:
यह त्रिगुट ऑपरेटर का उपयोग संकेत Fixup करने के लिए कम से कम है:
private int mod(int x, int y)
{
int result = x % y;
return result < 0? result + y : result;
}
जो लोग त्रिगुट पसंद नहीं है के लिए ऑपरेटर, यह बराबर है:
private int mod(int x, int y)
{
int result = x % y;
if (result < 0)
result += y;
return result;
}
क्योंकि यदि आप -2 से 6 को विभाजित करते हैं, तो आपको -2 शेष मिलेगा। % ऑपरेटर बाकी की तरह शेष देगा;
int remainder = 7 % 3; // will give 1
int remainder2 = 6 % 2; // will give 0
सापेक्ष प्राप्त करने के लिए:
// gives m (mod n)
public int modulo(int m, int n){
int mod = m % n ;
return (mod < 0) ? mod + n : mod;
}
ठीक है, लेकिन फिर मैं एंड्रॉइड में मोड कैसे प्राप्त करूं? –
धन्यवाद डॉन, यह काम करता है। –
@don roby: इस ऑपरेटर का क्या अर्थ है: परिणाम वापसी <0? परिणाम + वाई: परिणाम; धन्यवाद – Kenji
@ केंजी - देखें [टर्नरी ऑपरेटर पर विकिपीडिया?:] (http://en.wikipedia.org/wiki/%3F :) –