2012-01-23 8 views
15

से अधिक है, तो मैं प्रोग्रामिंग के लिए नया हूं और सिंट ओवरफ़्लो त्रुटि के साथ कुछ परेशानी में भाग रहा हूं। जब भी मूल्य 100,000+ तक पहुंच जाता है तो मुझे एक सिंट ओवरफ्लो त्रुटि मिलती है। यह प्रोग्रामिंग कक्षा के अपने परिचय में एक अभ्यास अभ्यास था। जहां तक ​​मैं देख सकता हूं मैंने इसे ठीक से कोड किया था कि यह अभ्यास में कैसे किया गया था, लेकिन अभ्यास 300,000 के रूप में मूल्यों का उपयोग करके दिखाता है। क्या कोई संभवतः समझा सकता है कि मैं क्या गलत कर सकता हूं?सिंट ओवरफ़्लो त्रुटि जब मान 100,000+

<script language="VBscript"> 
Option Explicit 
DIM numberofshifts, totalshift1, totalshift2, _ 
    totalshift3, grandtotal, shiftaverage 
numberofshifts=3 
totalshift1 = Inputbox("How many widgets during the first shift") 
totalshift2 = Inputbox("How many widgets during the second shift") 
totalshift3 = Inputbox("How many widgets during the third shift") 
grandtotal = cint(totalshift1) + totalshift2 + totalshift3 
shiftaverage = grandtotal/numberofshifts 
Document.write "The Total of the Three Shifts is " & grandtotal 
Document.write "<br>The Average of the Three Shifts is " & shiftaverage 
</script> 

उत्तर

31

CInt betweeen -32,768 और 32,767 संभाल सकता है।

CInt के बजाय CLng का उपयोग करें।

MSDN Reference

+2

संदर्भ के लिए: [वीबीस्क्रिप्ट डेटा प्रकार] (http://msdn.microsoft.com/en-us/library/9e7a57cf%28VS.84%29.aspx) –

1

पूर्णांकों के लिए स्ट्रिंग डेटा परिवर्तित का उपयोग कर CInt() CLng() या CDbl() द्वारा पूरा किया जा सकता है। इन डेटा प्रकारों की आकार सीमाओं को याद रखना महत्वपूर्ण है। विभिन्न प्रोग्रामिंग भाषाओं में अलग-अलग सीमाएं होती हैं।
Here is a link to VBScript Data Types.

इंटीजर -32,768 से 32,767 तक पूर्णांक संभाल सकते हैं। लंबे समय से 2,,757,483,648 से 2,147,483,647 तक पूर्णांक संभाल सकते हैं। डबल्स 1.79769313486232E + 308 तक संख्याओं को संभाल सकते हैं, (यह सूर्य में परमाणुओं की संख्या की तुलना में एक बड़ी संख्या है, जो 1.1 9 octodecillion है।) वे डबल फ्लोटिंग-पॉइंट परिशुद्धता भी हैं; जिसका मतलब है कि एक डबल अत्यंत सटीक दशमलव अंक भी संभाल सकता है।

grandtotal = cdbl(totalshift1) + totalshift2 + totalshift3 

यह अतिप्रवाह समस्या को समाप्त होगा। यदि कोई उपयोगकर्ता गैर-संख्या में प्रवेश करता है तो यह त्रुटि को संभाल नहीं पाएगा, लेकिन यह एक और विषय है।

+0

यह प्रश्न का उत्तर नहीं देता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। – emmanuel

+0

यह सवाल पूरी तरह से जवाब देता है। मैंने एक स्क्रिप्ट लिखी है कि, अन्य चीजों के साथ, हमारे इंट्रानेट के माध्यम से क्रॉल करता है और डोमेन मशीनों पर रैम की गणना करता है। मेरी पहली कोशिश सीआईएनटी थी। इससे एक अतिप्रवाह हुआ। तब मुझे रोमियो से यह जवाब मिला और सीएलएनजी की कोशिश की। वह भी तुरंत बह गया। अगला डेटा लंबा से लंबा है, इसलिए मैंने सीडीबीएल की कोशिश की और यह काम करता है। यह दिए गए प्रश्न की तुलना में प्रश्न का बेहतर उत्तर है, इसलिए आप मेरे उत्तर के मूल्यांकन में गलत हैं। –

+0

ठीक है। आपके सहयोग के लिए धन्यवाद। –

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