как узнать что Value Is Integer

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 8 май 2008.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    сабж
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    IsNumeric function


    Tests the value of an expression to determine whether it is numeric, or can be converted to a numeric value.
     
  3. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    Код (Text):
    If Isnumeric(s1) Then
    If Len(s1)=4 Then

    '=я здесь должен проверить что s1 именно интеджер а не какой нибудь дабл


    end if
    end if
    или как узнать что валью
    именно год:то есть 4 значный интнджер
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    мЫсль правильная, но немного не дочитали хэлп

    инетжер - переменная с 2-byte и её пределы -32768 to 32767 (включительно)

    так что проверить надо на байты в кол-ве 2х штук и/или на пределы (см. выше)

    Len(Cstr(s1)) = 4 или по пределам ( 1900 < s1 < 2100 )
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    у меня s1 итак стринг
    я сразу валью перевел в стринг для удобсва
    че будет если
    s1="1910,452"

    1900 < 1910,452 < 2100
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ну так переведи обратно в число и посмотри целое ли оно.
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    s1="1910,452" - стринг
    1900 < 1910,452 < 2100 - работа с числами ...
    для начала s1 надо в число перевести


    если число с дробью то
    ( Help &copy; )

    и вообще integer переводиться именно как целое число

    Код (Text):
    Dim iYear as integer
    if IsNumeric( s1 ) then
    iYear = Cint( s1 )
    if 1900 < iYear < 2100 then
    ....
    End if
    End if
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Можно ещё посмотреть в сторону ф-ии TypeName + пара проверок.
     
  9. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    cделал так
    Код (Text):
                   
    s1=Cstr(eyfen.ColumnValues(0))
    If Isnumeric(s1) Then
    If Len(s1)=4 Then
    If Fraction(Cdbl(s1))=0 Then                   
    '=do somthing

    end if
    end if
    end if
     
  10. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    и что опять же попадаетесь на 1919,3515310351483


    тю.... :(
     
  11. K-Fire

    K-Fire Гость

    ... Просто так, мимо проходил:

    ИМХО уже то, что год получаете как строку, говорит о неоптимальном дизайне приложения.
     
Загрузка...

Поделиться этой страницей