2011-05-05 13 views
18

मैं इस तरह के रूप में एक पूर्णांक मान सेट करने के कोशिश कर रहा हूँ:VB6 अतिप्रवाह त्रुटि

Dim intID as integer 
intID = x * 10000 

यह ठीक काम करता है जब x 3 या उससे कम है।

run-time error 6 Overflow

मुझे समझ नहीं आता क्यों है: लेकिन जब x 4 है, यह मुझे त्रुटि देता है। मैं बिना किसी समस्या के सीधे intID से 40000 सेट कर सकता हूं, इसलिए यह स्पष्ट रूप से बड़ी संख्या में स्टोर करने में सक्षम है।

enter image description here

उत्तर

32

आप * 40000 करने के लिए एक VB6 पूर्णांक सेट नहीं कर सकता के रूप में वे 16 बिट संख्या प्रवेश किया हुआ है तो 32,767 अधिकतम है।

Long 32 बिट प्रकार है।

एक चेतावनी के रूप में

हालांकि, अगर आप के लिए गए थे:

Dim lngID As Long 
lngID = 4 * 10000 

तुम अब भी पूर्णांक के लिए शाब्दिक संख्या डिफ़ॉल्ट के रूप में एक अतिप्रवाह मिलेगा, सही करने के लिए है कि बस & साथ जब तक एक लिख सकते हैं या एक डाली रूप में लंबे समय का उपयोग कर CLng():

Dim lngID As Long 
lngID = 4 * 10000& 
lngID = 4 * CLng(10000) 

अद्यतन:

enter image description here

+0

लेकिन कारण है कि मैं इस के साथ एक त्रुटि नहीं मिलता: intID = 40000 – Urbycoz

+2

VB में ** 6 **, 'मंद intID पूर्णांक के रूप में: intID = 40000' समय –

+1

क्योंकि' की 100% त्रुटि होगा 3 * 10000' एक पूर्णांक में फिट बैठता है (इसकी <32767), '4 * 10000' –

9
VB6 में

, पूर्णांक प्रकार एक पूर्ण संख्या जो -32,768 से 32767.

आप सबसे अच्छा यहाँ Long प्रकार का उपयोग किया जाएगा के बीच है है।

0

वीबी इंटीजर वैरिएबल रेंज में -32,768 से 32,767 है यदि आपके प्रोग्राम में कोई भी वैरिएबल वैल्यू इस श्रेणी से अधिक है, तो आपको इंटीजर की बजाय डेटा टाइप लॉन्ग करना होगा।

Dim intID as integer 
intID = x * 10000 

Dim lngID AS Long 

lngID = x * CLng(10000) 
' if 10000 
' whatever you want to be 
+1

कृपया अपना उत्तर समझाएं। आपने बस कोड पोस्ट किया है। –

+1

वीबी इंटेगर वैरिएबल रेंज में -32,768 से 32,767 है यदि आपके प्रोग्राम में इस श्रेणी से कोई वैरिएबल वैल्यू अधिक है, तो आपको इंटीजर की बजाय डेटा टाइप लॉन्ग घोषित करना होगा। धन्यवाद। –

+1

हाय @ अलवे शुरुआती, स्टैक ओवरफ़्लो में आपका स्वागत है। आप सही हैं, इसे हल करने का सही तरीका एक int के बजाय लंबे समय तक उपयोग करना है। यह उत्तर देने के लिए धन्यवाद। – Contango

संबंधित मुद्दे