我有一個接收包含數字的字符串的腳本。將字符串轉換爲數字
字符串可能是「1000」或「1000.25」或「1111111111111111111111111」或「abc111」
我希望能夠首先檢查它是否是一個數字,如果不是失敗,如果有分數也會失敗。
我無法轉換爲合適的數字類型,但仍然可以檢查上述情況。
基本上我需要檢查字符串只包含一個整數,不管這個數字有多大。
真的很感謝這一個幫助。
感謝
戴夫
我有一個接收包含數字的字符串的腳本。將字符串轉換爲數字
字符串可能是「1000」或「1000.25」或「1111111111111111111111111」或「abc111」
我希望能夠首先檢查它是否是一個數字,如果不是失敗,如果有分數也會失敗。
我無法轉換爲合適的數字類型,但仍然可以檢查上述情況。
基本上我需要檢查字符串只包含一個整數,不管這個數字有多大。
真的很感謝這一個幫助。
感謝
戴夫
這是我用過實現的功能,你想要什麼:
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
難道你有機會去發現CInt和CDbl了嗎?
使用則IsNumeric檢查,如果是一個號碼,然後使用CINT轉換
請記住,整數數據類型被限制在-32,768到32,767的範圍內。您可能想要使用長數據類型(用clng()進行轉換),而該數據類型的範圍限制爲-2,147,483,648至2,147,483,647。我剛剛測試並在運行cint(32768)或clng(2147483648)時出現溢出錯誤。 – dmogle
謝謝你。我喜歡這個解決方案,但稍微修改了一下,在字符串中的每個字符上都做了一個isNumeric,這對所有非數字字符都會失敗。 – Dave