बेहतर शीर्षक के बारे में सोच नहीं सका। वैसे समस्या यह है: मेरे पास "int i" है, यह कोई मूल्य हो सकता है। मेरा लक्ष्य "int i" को द्वारा विभाजित निकटतम संख्या में बदलने के लिए है।जावा - यह जांचने के लिए कि कोई विभाजन एक पूर्णांक या फ़्लोट है या नहीं?
उदाहरण के लिए, मुझे i = 33 मिला। तो मुझे (16x2) पर बदल दिया जाएगा। लेकिन अगर मुझे i = 50 मिलता है, तो यह (16x3) पर बदल जाएगा।
मैं उदाहरण के लिए बहुत सी बातें करने की कोशिश की:
for (int x = i; x < 999; x++){
if ((i - x)/16 *is an integer*){
i = i - x;
}
लेकिन मैं जानता हूँ कि अगर इसकी एक पूर्णांक जांच करने का तरीका नहीं है। तो हो सकता है कि मेरा पिछला कोड काम हो, लेकिन मुझे यह जांचने का एक तरीका ढूंढना होगा कि यह एक पूर्णांक या फ्लोट है या नहीं। तो .. किसी भी मदद की सराहना की है।
if((i - x)%16 == 0) {
// (i-x)/16 is integer
}
दो चींटियों का डिवीजन हमेशा एक int परिणाम होगा। आप इसके बजाय मॉड्यूलस ('%') का उपयोग कर सकते हैं। – GriffeyDog
एफडब्ल्यूआईडब्ल्यू, मैं इस समस्या को हल करने के लिए एक अलग दृष्टिकोण की कोशिश करने का सुझाव देना चाहता हूं। 16 से अधिक प्राप्त करने के लिए मैं उस संख्या को देखने के लिए लूपिंग के इस दृष्टिकोण को बहुत अक्षम कर सकता हूं। और क्या होगा यदि 16 का सबसे नज़दीकी एकाधिक मुझसे बड़ा है? – Alex