Новости
Карта сайта
Авторы
Поиск
Рассылки
Статьи и информация
VB хитрости
Популярные ошибки
Книги
Конференция
Программы
Контролы
Примеры
Разное
Ссылки

Популярные ошибки

Числа

Количество просмотров: 11253

Некорректное поведение CInt()
 
Автор: Борис Рудой

Функция CInt() работает неверно . точнее неверно округляет числа CInt(2.4) возвратит 2, а CInt(2.6) =3. Это верно, а теперь внимание - CInt(2.5) = 2, но CInt(3.5) = 4. На середине четные числа округляются до меньшего, а нечетные до большего значения.
 

Отдельное мнение Сергея Тулаева по этому поводу -
Функция CINT работает совершенно корректно. Она осуществляет так называемое "бухгалтерское округление".
Допустим, вы имеете 100 транзакций и вам нужно их округлить до целых. Округлив также сумму, вы получите "странный результат", когда сумма округленных чисел не равна округленной сумме.
Издавна существует способ, когда четные числа с 0.5 округляются в меньшую сторону, а нечетные - в большую. Команда разработчиков VB учла этот нюанс.

Добавлено: 24 августа 2002



Не доверяйте автоматическому преобразованию типов
 
Автор: Борис Рудой

Классический пример:

   Dim a as Integer ,b as Integer ,c as Long
   A= 100 
   B=400
   C=A*B 

Почему? Cпросите вы. Очень просто - Бэйсик обрабатывает последнюю стороку так - а-целое, б - тоже - результат соотвественно будет целым. Потом я его преобразую в длинное целое. Правильно будет:
 C=A* Clng(B)

Добавлено: 24 августа 2002



К ошибкам

Rambler's Top100
Хостинг от Parking.ru