Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> как узнать что Value Is Integer
yerke
Вставить ник
сообщение 8:05:2008, 04:02
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 163
Регистрация: 28:08:2007
Из: Алматы
Пользователь №: 12 496
Специализация: Программист



Репутация: - 0 +


сабж
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 10)
Morpheus
Вставить ник
сообщение 8:05:2008, 04:09
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


IsNumeric function


Tests the value of an expression to determine whether it is numeric, or can be converted to a numeric value.
Подняться вверх 
 
Сообщение #2
yerke
Вставить ник
сообщение 8:05:2008, 04:22
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 163
Регистрация: 28:08:2007
Из: Алматы
Пользователь №: 12 496
Специализация: Программист



Репутация: - 0 +


Код
If Isnumeric(s1) Then
If Len(s1)=4 Then

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


end if
end if


или как узнать что валью
именно год:то есть 4 значный интнджер
Подняться вверх 
 
Сообщение #3
Morpheus
Вставить ник
сообщение 8:05:2008, 04:27
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


Цитата(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 )
Подняться вверх 
 
Сообщение #4
yerke
Вставить ник
сообщение 8:05:2008, 04:46
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 163
Регистрация: 28:08:2007
Из: Алматы
Пользователь №: 12 496
Специализация: Программист



Репутация: - 0 +


у меня s1 итак стринг
я сразу валью перевел в стринг для удобсва
Цитата(Morpheus @ 8:05:2008 - 10:27) *
Len(Cstr(s1)) = 4 или по пределам ( 1900 < s1 < 2100 )

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

1900 < 1910,452 < 2100
Подняться вверх 
 
Сообщение #5
Medevic
Вставить ник
сообщение 8:05:2008, 04:58
Цитата Ответить 


Что это ? :)
*****

Группа: Lotus team
Сообщений: 2 126
Регистрация: 10:12:2004
Из: Россия, Калуга
Пользователь №: 1 144



Репутация: - 71 +


Ну так переведи обратно в число и посмотри целое ли оно.
Подняться вверх 
 
Сообщение #6
Morpheus
Вставить ник
сообщение 8:05:2008, 06:09
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


Цитата(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
Подняться вверх 
 
Сообщение #7
Omh
Вставить ник
сообщение 8:05:2008, 06:21
Цитата Ответить 


Кто здесь?
****

Группа: Достойный программист
Сообщений: 710
Регистрация: 4:07:2007
Из: Латвиджа, Рига
Пользователь №: 11 685
Специализация: Специализация:



Репутация: - 28 +


Можно ещё посмотреть в сторону ф-ии TypeName + пара проверок.
Подняться вверх 
 
Сообщение #8
yerke
Вставить ник
сообщение 8:05:2008, 07:05
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 163
Регистрация: 28:08:2007
Из: Алматы
Пользователь №: 12 496
Специализация: Программист



Репутация: - 0 +


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 - 8:05:2008, 07:10
Подняться вверх 
 
Сообщение #9
Morpheus
Вставить ник
сообщение 8:05:2008, 07:21
Цитата Ответить 


очень злой модератор
*****

Группа: Lotus team
Сообщений: 2 666
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807
Специализация: разработчик всякой хрени



Репутация: - 46 +


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

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


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

тю.... wacko.gif
Подняться вверх 
 
Сообщение #10
K-Fire
Вставить ник
сообщение 8:05:2008, 07:43
Цитата Ответить 


Гуру
***

Группа: Достойный программист
Сообщений: 279
Регистрация: 20:12:2006
Пользователь №: 8 527
Специализация: PCLP



Репутация: - 4 +


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

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


Быстрый ответ  Ответить  Новая тема 

> Быстрый ответ
Полужирный
Курсив
Подчеркнутый
Вставить изображение
Смайлики
Цитата
Код
 
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись
   

 

RSS Текстовая версия Сейчас: 17:05:2008 - 06:59
с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net