Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Проверка на число


Автор: KIRINDORF 25.3.2011, 20:55
Для проверки введенного символа (Char) на принадлежность цифре (0-9) пытаюсь сравнивать на интервал от "0x30" до "0x39":
       
Код

 For c As Integer = 0 To len
         symbol = textBox1.Text
         If (symbol >= "0x30") And (symbol <= "0x39") Then
         Else
              Exit For'символ не принадлежит числу
         End If
 Next

 увы - VB видит, очевидно, это ("0x30") не как hex-число, а как строку или как еще что-то.
В С++ такое только и пройдет для проверки символа, а здесь не выходит.
Пробовал функцию Val(), она все буквы приравнивает к 0 - не годится.
Пробовал функции Parse() и TryParse() тоже ничего. smile 

Но должно же что-то быть в этом языке для такого простого действия!


Автор: diadiavova 25.3.2011, 21:56
Ну во-первых, в этом языке для числовых литералов, представляющих 16-ричное число совсем другой синтаксис: вместо 0x30 надо писать &H30
Во-вторых, сама структура Char имеет статический метод IsNumber
Код

If Char.IsNumber(symbol) Then

Кстати, среди функций бейсика тоже есть IsNumeric, но она проверяет не только символ, а объект любого типа.

Автор: KIRINDORF 26.3.2011, 11:10
Огромное вам спасибо - помогло.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)