कृपया इस टाइप करें।प्रकार, आदि
scala> 86400000 * 150
res0: Int = 75098112
scala> val i : Long = 86400000 * 150
i: Long = 75098112
val i = 86400000 * 150.asInstanceOf[Long]
i: Long = 12960000000
val i = 86400000 * 150L
i: Long = 12960000000
क्या दुनिया में यहाँ चल रहा है? मैं स्काइडाइविंग कर रहा हूं और मुझे कहना होगा कि यह सबसे खतरनाक चीज है जिसे मैंने कभी देखा है। इसके लिए कोई कंपाइलर जांच नहीं है? जाहिर है अगर मैं एक चर के लिए 150 प्रतिस्थापित कर रहा था जो अलग है।
* संपादित करें *
यह वास्तविक कोड है कि मुझे चिंतित हो गया था।
val oneDay = 86400000
val days150 = oneDay * 150
days150 = 75098112
यह स्कैला की गलती या किसी के अलावा गलती नहीं थी। बस मुझे चिंतित हो गया।
कृपया इस प्रश्न को वोट मत दें। यह एक वैध सवाल है और पूर्णांक अतिप्रवाह बहुत खतरनाक है और वास्तविक कार्यक्रमों के साथ वास्तविक समस्याएं पैदा करता है। तथ्य यह है कि यह कई भाषाओं में आम है और न केवल स्कैला बल्कि यह इसे कम वोट देता है। –
जब आपको वास्तव में बड़ी संख्या की आवश्यकता होती है, तो हमेशा [बिगइंटर] (http://docs.oracle.com/javase/1.5.0/docs/api/java/math/BigInteger.html) होता है। यह थोड़ा गुंजाइश है, लेकिन यह काम करता है। –
बंद करने के लिए वोट दिया; यह एक प्रश्न से अधिक रान है। विभिन्न उदाहरण बताते हैं कि प्रश्नकर्ता पहले से ही जानता है कि क्या हो रहा है: पूर्णांक ओवरफ़्लो। –