जावा में, मैं एक डबल को पूर्णांक में बदलना चाहता हूं, मुझे पता है कि क्या आप ऐसा करते हैं:
double x = 1.5;
int y = (int)x;
आपको y = 1 मिलता है। अगर तुम यह करते हो:
int y = (int)Math.round(x);
आपको संभावना मिल जाएगी 2. हालांकि, मैं सोच रहा हूं: चूंकि पूर्णांकों के दोहरे प्रतिनिधित्व कभी-कभी 1.9999999998 या कुछ और जैसे दिखते हैं, क्या ऐसी संभावना है कि Math.round () के माध्यम से बनाए गए डबल कास्ट करने के बाद भी परिणाम कम हो जाएगा, बल्कि राउंडेड संख्या की तुलना में हम (यानी: 1 के बजाय कोड में 2 का प्रतिनिधित्व करते हैं)?
(और हां, मेरा मतलब है कि यह इस तरह है: क्या एक्स के लिए कोई मूल्य है, जहां y एक परिणाम दिखाएगा जो x के एक गोल प्रतिनिधित्व के बजाय एक छोटा है?)
यदि हां: तो क्या ट्रंकेशन के जोखिम को चलाने के बिना एक गोल इंट में डबल बनाने का एक बेहतर तरीका है?
कुछ पता लगाया: Math.round (x) एक लंबा रिटर्न देता है, एक डबल नहीं। इसलिए, 3.9999998 जैसी दिखने वाली संख्या को वापस करना Math.round () के लिए असंभव है। इसलिए, int (Math.round ()) को कभी भी किसी चीज़ को अलग करने की आवश्यकता नहीं होगी और हमेशा काम करेगा।