Wewnątrz skryptu VBScript, muszę się upewnić, że użytkownik wprowadza liczbę całkowitą.VBScript: sprawdzanie, czy dane wejściowe użytkownika są liczbami całkowitymi
Oto co mam teraz:
WScript.Echo "Enter an integer number : "
Number = WScript.StdIn.ReadLine
If IsNumeric(Number) Then
' Here, it still could be an integer or a floating point number
If CLng(Number) Then
WScript.Echo "Integer"
Else
WScript.Echo "Not an integer"
End If
End if
Problemem jest to, że CLng() nie sprawdzić, czy mój numer jest liczbą całkowitą: numer jest przekształcany w każdym razie.
Czy istnieje sposób sprawdzenia, czy liczba jest liczbą całkowitą?
EDIT:
Sugerowana odpowiedź nie działa dobrze dla mnie. Oto nowa wersja mojego kodu:
WScript.Echo "Enter an integer number : "
Number = WScript.StdIn.ReadLine
If IsNumeric(Number) Then
' Here, it still could be an integer or a floating point number
If Number = CLng(Number) Then
WScript.Echo "Integer"
Else
WScript.Echo "Not an integer"
End If
End if
i tu jest wyjście:
U:\>cscript //nologo test.vbs
Enter an integer number :
12
Not an integer
U:\>cscript //nologo test.vbs
Enter an integer number :
3.45
Not an integer
IsNumeric ma problem. Wpisz "12,6,14", a IsNumeric zwraca wartość "prawda" i wygeneruje wyjątek w instrukcji CLng. – LarryBud
'CLng (Number) = Number' nie zadziała, ponieważ operandy mają inny typ, więc kontrola się nie powiedzie, patrz odpowiedź @ cogumel0. – ViRuSTriNiTy