VBScript: проверка, если ввод данных пользователем является целым числом

Библиотеки не могут быть напрямую использованы в какой-либо программе, если они должным образом не добавлены в файлы градиента проекта.

Это можно легко сделать в интеллектуальных средах IDE, таких как inteli J.

1) Сначала как конвенция, добавьте имена папок «libs» в ваш файл src проекта. (это можно легко сделать с помощью самой IDE)

2), затем скопируйте или добавьте файл библиотеки (например: .jar-файл) в папку с именем «libs»

3) теперь вы можете увидеть файл библиотеки внутри папки libs. Теперь щелкните правой кнопкой мыши на файле и выберите «Добавить как библиотеку».

Обратите внимание:

Всякий раз, когда вы добавляете библиотеки в проект, убедитесь в том, что проект поддерживает библиотеку

19
задан Jérôme 8 October 2009 в 06:44
поделиться

6 ответов

Это очень похоже на ваш код:

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) = Number Then
       WScript.Echo "Integer"
    Else
       WScript.Echo "Not an integer"
    End If
End If
13
ответ дан 30 November 2019 в 04:03
поделиться

Это на самом деле будет работать:

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 CStr(CLng(Number)) = Number Then
       WScript.Echo "Integer"
    Else
       WScript.Echo "Not an integer"
    End If
End If

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

Теперь вы берете строку, проверяете, является ли она числовой, преобразуете ее в CLng (), которая будет возвращать только целую часть числа, преобразуете ее обратно в строку и, наконец, сравниваете ее с исходной строкой.

Если вы введете ... «asdasD» (или любую другую нечисловую вещь), она не пройдет проверку «isNumeric».

Если вы введете «10,5» (в виде строки) при преобразовании в CLng (), вы получите 10, когда затем преобразуетесь в «10» и сравните с «10,5». Поскольку строки не совпадают, он говорит, что это не целое число.

Если вы введете «10», преобразованное в CLng (), это 10, обратно в строку это «10», которое возвращает значение true при сопоставлении его с «10», то есть это целое число.

Я знаю, что уже на несколько лет позже, но я сам сейчас изучал это и был озадачен этим. Надеюсь, что это поможет кому-то еще удивляться, как я.

17
ответ дан 30 November 2019 в 04:03
поделиться

Ответ Cogumel выше почти доходит до него, но не получилось для меня странным образом. Я обнаружил, что он вернет true для «5» (в кавычках), но не 5 (без кавычек). При выполнении окончательного сравнения необходимо также преобразовать исходный ввод в строку, чтобы все это работало надежно. Здесь она заключена в аккуратную функцию:

public function is_integer( input )
    is_integer = false
    If IsNumeric(input) Then
        If CStr(CLng(input)) = CStr(input) Then is_integer = true
    End If
end function

Я также проверил это с нулем (true) и отрицательными целыми числами (true), как в кавычках, так и вне их.

3
ответ дан 30 November 2019 в 04:03
поделиться

Я нашел эту простую программу для проверки числового значения из http://rindovincent.blogspot.com/p/vbscript-programs.html и с разрешения я вставляю то же самое. Я надеюсь, что это будет полезно для начинающих, как я

<HTML>
<HEAD><TITLE>Simple Validation</TITLE>
<SCRIPT LANGUAGE="VBScript"> 
<!--
Sub Submit_OnClick
  Dim TheForm
  Set TheForm = Document.ValidForm
  If IsNumeric(TheForm.Text1.Value) Then
    If TheForm.Text1.Value < 18 Or TheForm.Text1.Value > 40 Then
      MsgBox "Age must be above 18"
    Else
      MsgBox "Thank You"
    End If
  Else
    MsgBox "Please enter a numeric value"
  End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>Simple Validation</H3><HR>
<FORM NAME="ValidForm">
Enter your age: 
<INPUT NAME="Text1" TYPE="TEXT" SIZE="2">
<INPUT NAME="Submit" TYPE="BUTTON" VALUE="Submit">
</FORM>
</BODY>
</HTML> 
-1
ответ дан 30 November 2019 в 04:03
поделиться

Если вы сделаете что-то вроде этого, это должно сработать:

if Number = CInt (Number) Then

3
ответ дан 30 November 2019 в 04:03
поделиться

другой способ,

if number > 0 then
...
end if
-4
ответ дан 30 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: