Получение целочисленных значений

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Anatoly
Бывалый
Сообщения: 91
Зарегистрирован: 11 Август 2005, 9:33
Откуда: Томск

Получение целочисленных значений

Сообщение Anatoly »

Для получения последней цифры года использовал несколько лет последовательность:
Y3# = Year(Today())/10 ! Получаю 1-ые три цифры года
Y4# = Year(Today()) - (Y3# * 10) ! Получаю последнюю цифру года
После получения новой машины под Win XP оператор
Y3# = Year(Today())/10 вместо значения 200 стал устойчиво выдавать
значение 201
Y3# = Int(Year(Today())/10) также выдает значение 201
Явно прописал, что Y3 Long - не помогает
Пришлось делать через строковую переменную Y3 String(3) и далее
Y3 = Format(Year(Today())/10,@s3)
Y3# = Y3 ! дает искомое 200 и далее
Y4# = Year(Today()) - (Y3# * 10) ! Получаю последнюю цифру года

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

Спасибо
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Получение целочисленных значений

Сообщение Yufil »

Anatoly писал(а):Для получения последней цифры года использовал несколько лет последовательность:
Y3# = Y3 ! дает искомое 200 и далее
Y4# = Year(Today()) - (Y3# * 10) ! Получаю последнюю цифру года

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

Спасибо
Действительно, было такое. Вопрос почему сугубо абстрактный, ошибки в реализации. А для получения последней цифры надо использовать остаток от деления

Y4#= Year(Today()) % 10

Или сформатировать год, а потом разобрать по цифрам

Year"= Format(Year(Today(),@n04)
Y1#=Sub(Year",1,1)
Y2#=Sub(Year",2,1)
....
Ответить