преобразование строки в число - PullRequest
1 голос
/ 03 октября 2011

У меня есть скрипт, который получает строку, содержащую число.

Строка может быть «1000» или «1000.25» или «1111111111111111111111111» или «abc111»

Я бы хотел сначала проверить, является ли это число, и потерпеть неудачу, если это не так, а также потерпеть неудачу, если есть дроби.

У меня проблемы с преобразованием в подходящий тип номера, который по-прежнему позволяет мне проверять указанные сценарии.

В основном мне нужно проверить, что строка содержит только целое число, независимо от того, насколько большим может быть это число.

Был бы очень признателен за помощь.

Спасибо

Dave

Ответы [ 3 ]

2 голосов
/ 03 октября 2011

Используйте IsNumeric , чтобы проверить, является ли число, а затем используйте CInt для преобразования

0 голосов
/ 03 октября 2011

Это функция, которую я использовал для достижения того, что вы хотите:

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
0 голосов
/ 03 октября 2011

У вас уже был шанс открыть CInt и CDbl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...