2012-07-12 3 views
4

"123"과 같이 정수형 숫자 값을 가질 수있는 문자열 변수 data을 반복합니다. 이 문자열 변수는 숫자 값을 가지고 있다면, 나는 그것을 표시하고이 같은 몇 가지를 사용하여 생각하려는 :문자열에 숫자 값이 있는지 나타내는 방법

If IsNumeric(CInt(data)) Then 
    WScript.Echo "Number" 
Else 
    WScript.Echo "String" 
End If 

그러나 CInt() 때마다 data 변수가 정수로 변환 할 수없는 오류가 발생합니다 :

Type mismatch: 'CInt'

문자열에 vbscript에 정수 값이 있는지 어떻게 나타낼 수 있습니까? 정수만을위한

+0

같은 코드에서이를 사용할 수 있다는 착각 IsNumeric()이 예상대로 작동하려면'CInt()'가 필요 없다. 'CInt()'함수를 제거하는 것이 해결책입니다. – theta

답변

8

IsNumeric when expression

식이 날짜 식인 경우 IsNumeric은 False를 반환합니다.

지금, 당신의 코드에서 당신은 수, 당신은 정수로 변환하려고하지 않은 경우에도

당신은 그냥 발견이 항아리

If IsNumeric(data) Then  
    WScript.Echo "Number" 
Else 
    WScript.Echo "String" 
End If 
+2

이것은 일반적인 지식이지만 IsNumeric()에 전달하는 문자열이 "1013230924d3"또는 "1013230924E3"처럼 보이면 여전히 TRUE로 평가됩니다. D와 E는 과학적 표기법으로 간주되며 모든 것이 균열을 빠져 나가는 경향이 있습니다. :) – Milan

1

:

If VarType(data) = vbInteger Then 
    WScript.Echo "Integer" 
Else 
    WScript.Echo "Something else" 
End If 

숫자 :

비주얼 베이직 스크립트의 기능은 표현식이 number.It가 따라 부울 값을 반환로 평가 될 수 있는지 여부를 확인하는 데 사용할 수 있습니다
If IsNumeric(data) 
    WScript.Echo "Number" 
Else 
    WScript.Echo "string" 
End If 
+0

OP의 질문에 적어도 태그가 붙은 VBScript의 경우 [this] (https://www.w3schools.com/asp/func_vartype.asp)의 숫자에 대해 'vbInteger'를 바꿔야합니다. 그들은 타입을 체크하기 위해 찾고있는 변수에 해당하는 페이지입니다. – user66001

관련 문제