Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Lotus - Программирование _ как узнать что Value Is Integer

Автор: yerke 8:05:2008, 04:02

сабж

Автор: Morpheus 8:05:2008, 04:09

IsNumeric function


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

Автор: yerke 8:05:2008, 04:22

If Isnumeric(s1) Then 
If Len(s1)=4 Then

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


end if
end if


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

Автор: Morpheus 8:05:2008, 04:27

Цитата(yerke @ 8:05:2008 - 06:15) *
If Len(s1)=4 Then

мЫсль правильная, но немного не дочитали хэлп

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

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

Цитата(yerke @ 8:05:2008 - 06:22) *
именно год:то есть 4 значный интнджер

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

Автор: yerke 8:05:2008, 04:46

у меня s1 итак стринг
я сразу валью перевел в стринг для удобсва

Цитата(Morpheus @ 8:05:2008 - 10:27) *
Len(Cstr(s1)) = 4 или по пределам ( 1900 < s1 < 2100 )

че будет если
s1="1910,452"

1900 < 1910,452 < 2100

Автор: Medevic 8:05:2008, 04:58

Ну так переведи обратно в число и посмотри целое ли оно.

Автор: Morpheus 8:05:2008, 06:09

Цитата(yerke @ 8:05:2008 - 06:46) *
че будет если
s1="1910,452"

1900 < 1910,452 < 2100

s1="1910,452" - стринг
1900 < 1910,452 < 2100 - работа с числами ...
для начала s1 надо в число перевести


если число с дробью то
Цитата
If expr is a string expression, CInt returns the numeric representation of the string, rounded to the nearest integer. If LotusScript cannot convert the string to a number, the function returns an error.

( Help © )

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

Dim iYear as integer
if IsNumeric( s1 ) then
     iYear = Cint( s1 )
     if 1900 < iYear < 2100 then
                ....
     End if
End if

Автор: Omh 8:05:2008, 06:21

Можно ещё посмотреть в сторону ф-ии TypeName + пара проверок.

Автор: yerke 8:05:2008, 07:05

cделал так

                
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

Автор: Morpheus 8:05:2008, 07:21

Цитата(yerke @ 8:05:2008 - 09:05) *
If Len(s1)=4 Then

и что опять же попадаетесь на 1919,3515310351483


Цитата(yerke @ 8:05:2008 - 09:05) *
Cdbl(s1)

тю.... wacko.gif

Автор: K-Fire 8:05:2008, 07:43

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

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

Форум Invision Power Board (http://nulled.ws)
© Invision Power Services (http://nulled.ws)