2008-08-21 13 views

उत्तर

32

इंट समारोह एक निर्धारित संख्या के पूर्णांक भाग देता है।

CInt समारोह टाइप करने के लिए पूर्णांक एक अभिव्यक्ति बदल देता है।

और सर्वश्रेष्ठ उत्तर से MSDN

CInt फिक्स से अलग है और आता है इंट काम करता है, जो काट-छांट के बजाय गोल, एक नंबर के आंशिक भाग। जब आंशिक भाग बिल्कुल 0.5 होता है, तो सीआईएनटी फ़ंक्शन हमेशा इसे निकटतम संख्या तक ले जाता है। उदाहरण के लिए, 0.5 राउंड से 0, और 1.5 राउंड से 2.

16

और, सबसे महत्वपूर्ण अंतर (कम से कम आईएमई) .... यह है कि सीआईएनटी overflows at 32,767 है।

+0

अनुस्मारक के लिए बहुत धन्यवाद कि int हस्ताक्षरित 16 बिट पूर्णांक है! –

3

यहाँ एक और अंतर है:

स्क्रिप्ट:

wscript.echo 40.91 * 100 
wscript.echo Int(40.91 * 100) 
wscript.echo CInt(40.91 * 100) 

परिणाम:

4091 
4090 (????) 
4091 

किसी भी विचार?

+1

फ़्लोटिंग पॉइंट राउंडिंग। कोड में "40.9 1" का वास्तविक मान बहुत करीब है लेकिन सैद्धांतिक दशमलव मान से कम है। सीआईएनटी राउंड निकटतम, Int truncates। –

3

इस समस्या का सामान्य उत्तर मैन्युअल रूप से पुन: राउंडिंग को मजबूर करना है। यह समस्या FORTRAN के रूप में पुरानी है।

a = int(40.91 * 100) 

उपयोग

b = 40.91 * 100 
a = int(b + 0.5) 

बहुत पुराने चाल, अभी भी एक्सेल स्प्रेडशीट में उपयोगी समय-समय पर करने के बजाय

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