2013-09-24 5 views
6

मुझे यह बताने में सक्षम होना चाहिए कि एक पूर्णांक एक पूर्ण संख्या है या यदि यह दशमलव है। तो 13 एक पूर्ण संख्या होगी और 23.23 दशमलव होगा।वीबी -2010 कैसे बताना है कि कोई संख्या पूर्ण पूर्णांक

तो जैसे;

If 13 is a whole number then 
msgbox("It's a whole number, with no decimals!") 
else 
msgbox("It has a decimal.") 
end if 
+0

किस प्रकार किया जाता है चर है कि आप अपने नंबर शामिल करने के लिए प्रयोग कर रहे हैं, यह एक स्ट्रिंग है ?. –

उत्तर

7

आप जांच सकते हैं कि संख्या की मंजिल और छत समान है या नहीं। यदि यह बराबर है, तो यह एक पूर्ण पूर्णांक है, अन्यथा यह अलग होगा।

If Math.Floor(value) = Math.Ceiling(value) Then 
... 
Else 
... 
End If 
4

सच है कि आप एक प्रकार है कि आप निर्धारित करने के लिए किया जाए या नहीं यह एक पूर्णांक या किसी अन्य प्रकार मैं यह सोचते हैं कि नंबर एक स्ट्रिंग में निहित है है की आवश्यकता होगी, कर रहे हैं कि द्वारा आंकना। यदि ऐसा है तो आप यह निर्धारित करने के लिए Integer.TryParse विधि का उपयोग कर सकते हैं कि मान एक इंटीजर है या नहीं, यह सफल होने पर इसे पूर्णांक के रूप में भी आउटपुट करेगा। यदि आप ऐसा नहीं कर रहे हैं तो कृपया अधिक जानकारी के साथ अपने प्रश्न को अपडेट करें।

Dim number As String = 34.68 
Dim output As Integer 
If (Integer.TryParse(number, output)) Then 
    MsgBox("is an integer") 
Else 
    MsgBox("is not an integer") 
End If 

संपादित करें:

यदि आप एक दशमलव या किसी अन्य प्रकार का उपयोग कर रहे अपना नंबर, एन कुछ इस तरह शामिल करने के लिए आप एक ही विचार कर सकते हैं।

Option Strict On 
Module Module1 

    Sub Main() 

     Dim number As Decimal = 34 
     If IsInteger(number) Then 
      MsgBox("is an integer") 
     Else 
      MsgBox("is not an integer") 
     End If 
     If IsInteger("34.62") Then 
      MsgBox("is an integer") 
     Else 
      MsgBox("is not an integer") 
     End If 

    End Sub 

    Public Function IsInteger(value As Object) As Boolean 
     Dim output As Integer ' I am not using this by intent it is needed by the TryParse Method 
     If (Integer.TryParse(value.ToString(), output)) Then 
      Return True 
     Else 
      Return False 
     End If 
    End Function 
End Module 
+0

क्षमा करें, मैंने मूल पोस्ट अपडेट किया है। इनपुट हमेशा एक पूर्णांक होने जा रहा है लेकिन मुझे यह पता लगाना होगा कि यह एक पूर्ण संख्या है या यदि पूर्णांक में कोई दशमलव स्थान है। – user2691270

+2

@ user2691270 एक [इंटीजर] (http://www.techterms.com/definition/integer) में दशमलव बिंदु नहीं हो सकता है, यदि दशमलव बिंदु है तो यह या तो दशमलव, डबल, स्ट्रिंग या सिंगल या उन पंक्तियों के साथ कुछ है। यह संख्या कहां से उत्पन्न की जा रही है, यदि कोई टेक्स्टबॉक्स शायद यह एक स्ट्रिंग है। –

+2

@ मार्कहॉल: यदि आपको परिणाम में रुचि नहीं है तो आपको TryParse के लिए "सहायक" चर की आवश्यकता नहीं है। आप या तो स्थिर (जैसे 0, -1, 42 या जो कुछ भी), या "कुछ नहीं" (जो एक पूर्णांक के लिए 0 पर डिफ़ॉल्ट) पास कर सकते हैं। एक sidenote के रूप में: ओपी केवल निर्दिष्ट "पूर्ण संख्या" के बाद से, मैं BigInteger.TryParse का उपयोग करने का सुझाव दूंगा। – igrimpe

17
If x = Int(x) Then 
    'x is an Integer!' 
Else 
    'x is not an Integer!' 
End If 
+0

मीठा और सरल। – Wakka02

+0

क्या होता है जब एक्स एक स्ट्रिंग है? यानी "2", "2.2", "3.14"? या फिर भी बेहतर, क्या होता है जब x 2.1 बिलियन से बड़ा होता है? पूरे नंबर (यानी तालिका आईडी) अधिकतम मूल्य से अधिक कर सकते हैं जो आप एक इंट (@ 2.1 बिलियन) में स्टोर कर सकते हैं। – user3541092

+0

मैंने सख्त टाइपिंग संभाली। यदि चर के लिए संख्या बहुत बड़ी है तो आपको ओवरफ़्लो अपवाद मिलेगा। – SSS

0
 
Dim Num As String = "54.54" 
If Num.Contains(".") Then MsgBox("Decimal") 
'Do Something 
+2

कुछ विस्तार और स्पष्टीकरण इस उत्तर की गुणवत्ता में सुधार करेगा। –

+0

यह उत्तर केवल एकमात्र ऐसा है जो जांचता है कि संख्या (एक स्ट्रिंग के रूप में) सही ढंग से स्वरूपित है या नहीं। अन्य उत्तर 1 से 1.00 के बराबर हैं और यह गलत है। –

1

मैं यह सोचते हैं रहा है कि अपने प्रारंभिक मान एक स्ट्रिंग है।

, सबसे पहले जांचें कि स्ट्रिंग मान संख्यात्मक है या नहीं।
, संख्या की मंजिल और छत की तुलना करें। यदि यह वही है, तो आपके पास एक पूर्ण संख्या है।

मैं विस्तार विधियों का उपयोग करना पसंद करता हूं।

''' <summary> 
''' Is Numeric 
''' </summary> 
''' <param name="p_string"></param> 
''' <returns></returns> 
''' <remarks></remarks> 
<Extension()> 
Public Function IsNumeric(ByVal p_string As String) As Boolean 
    If Decimal.TryParse(p_string, Nothing) Then Return True 
    Return False 
End Function 

''' <summary> 
''' Is Integer 
''' </summary> 
''' <param name="p_stringValue"></param> 
''' <returns></returns> 
<Extension()> 
Public Function IsInteger(p_stringValue As String) As Boolean 
    If Not IsNumeric(p_stringValue) Then Return False 
    If Math.Floor(CDec(p_stringValue)) = Math.Ceiling(CDec(p_stringValue)) Then Return True 
    Return False 
End Function 

उदाहरण:

Dim _myStringValue As String = "200" 
    If _myStringValue.IsInteger Then 
     'Is an integer 
    Else 
     'Not an integer 
    End If 
संबंधित मुद्दे