Сегодня пришло в рассылке RusFAQ.ru по VB.
Вопрос:
Уважаемые эксперты!Описываю в общем разделе глобальную переменную dim a(0) as long, затем в проце Load_Form пишу If a(0)<35*1000 — на этой строке выдаёт переполнение. Почему вдруг a(0) становится типом integer?
Вполне серьезный ответ:
Приветсвую вас, Александр! Что это за сердечко у вас в вопросе(перед "5*1000"), не совсем понятно из-за этого что у вас там такое. Но во-первых, если вы так напишите у вас будет ошибка связанная с незавершенной конструкцией If...Then...Else. ...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Adikus, Вы писали:
а
(0) тогда на что похоже?
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Здравствуйте, Senyai, Вы писали:
S>не понял.
<3
— "сердечко", повернутое направо.
Здравствуйте, edemoe, Вы писали:
E>а (0) тогда на что похоже?
очочко
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Здравствуйте, Spaider, Вы писали:
S>Здравствуйте, edemoe, Вы писали:
E>>а (0) тогда на что похоже?
S>очочко
Унитаз, вид сверху. А рядом горшок с ручкой стоит (буква a).
Майкл Джексон — наше всё!
Здравствуйте, Adikus, Вы писали:
A>Приветсвую вас, Александр! Что это за сердечко у вас в вопросе(перед "5*1000"), не совсем понятно из-за этого что у вас там такое. Но во-первых, если вы так напишите у вас будет ошибка связанная с незавершенной конструкцией If...Then...Else. ...
Меня тоже это улыбает и раздражает одновременно в веб-интерфейсе mail.ru — они подвёрстывают сердечко в текст программы.
А переполнение там, по-видимому, из-за того, что 35*1000 = 35000, что выходит за пределы 16-битного integer (мы ещё не дошли до присваивания переменной).
Чтобы такого не было, нужно писать CLng(35)*1000