2011-10-03 190 views
1

我有一個接收包含數字的字符串的腳本。將字符串轉換爲數字

字符串可能是「1000」或「1000.25」或「1111111111111111111111111」或「abc111」

我希望能夠首先檢查它是否是一個數字,如果不是失敗,如果有分數也會失敗。

我無法轉換爲合適的數字類型,但仍然可以檢查上述情況。

基本上我需要檢查字符串只包含一個整數,不管這個數字有多大。

真的很感謝這一個幫助。

感謝

戴夫

回答

0

這是我用過實現的功能,你想要什麼:

Function is_numeric(ByVal sText) 
    Dim iCnt, sChr 

    is_numeric = True 

    If IsNull(sText) OR sText = "" Then 
     is_numeric = False 
     Exit Function 
    End If 

    If sText = "" Then 
     is_numeric = False 
     Exit Function 
    End If 

    For iCnt = 1 To Len(sText) 
     sChr = Mid(sText, iCnt, 1) 
      If Asc(sChr) < 48 OR Asc(sChr) > 57 Then 
      is_numeric = False 
      Exit For 
     End If 
    Next 
End Function 
+1

謝謝你。我喜歡這個解決方案,但稍微修改了一下,在字符串中的每個字符上都做了一個isNumeric,這對所有非數字字符都會失敗。 – Dave

0

難道你有機會去發現CInt和CDbl了嗎?

2

使用則IsNumeric檢查,如果是一個號碼,然後使用CINT轉換

+0

請記住,整數數據類型被限制在-32,768到32,767的範圍內。您可能想要使用長數據類型(用clng()進行轉換),而該數據類型的範圍限制爲-2,147,483,648至2,147,483,647。我剛剛測試並在運行cint(32768)或clng(2147483648)時出現溢出錯誤。 – dmogle