ОБСУЖДЕНИЕ

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

10 ответов 6,9 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

IsNumeric function


Tests the value of an expression to determine whether it is numeric, or can be converted to a numeric value.
 
Код:
If Isnumeric(s1) Then 
If Len(s1)=4 Then

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


end if
end if

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

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

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

именно год:то есть 4 значный интнджер
Len(Cstr(s1)) = 4 или по пределам ( 1900 < s1 < 2100 )
 
Ну так переведи обратно в число и посмотри целое ли оно.
 
че будет если
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
 
Можно ещё посмотреть в сторону ф-ии TypeName + пара проверок.
 
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
 
... Просто так, мимо проходил:

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

Статистика тем

Создано
yerke,
Последний ответ от
K-Fire,
Ответы
10
Просмотры
6 944