Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Dry
-
- Новичок

-

-
- Сообщения: 26
- Зарегистрирован: 08.02.2007 (Чт) 2:03
Dry » 15.05.2008 (Чт) 23:27
Вообщем есть такой простой код:
- Код: Выделить всё
Option Explicit
Private Sub Command1_Click()
Dim x As Double
Dim y As Double
x = 1
Do While x <= 1.3
y = x + 2
Print Round(y, 3)
x = x + 0.1
Loop
End Sub
На сколько я понимаю он должен вывести на экран 4 значения y, но выводит только 3, как будто x=1.3 не входит в x<=1.3! Почему так происходит? Или я что то непойму?

-
Хакер
-
- Телепат

-

-
- Сообщения: 16497
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 16.05.2008 (Пт) 0:22
Не входит. Действительно.
Поставь на выходе
- Код: Выделить всё
MsgBox x - 1.3
и посмотри, насколько x больше числа 1.3 .
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
Matew
-
- Постоялец

-

-
- Сообщения: 894
- Зарегистрирован: 28.06.2004 (Пн) 17:44
- Откуда: Дальний Восток, г. Ха
-
Matew » 16.05.2008 (Пт) 1:46
Dry, это ошибка округления. Просто прибавляй к верхней гранцие цикла число, равное, скажем, половине шага цикла.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару

-
alibek
-
- Большой Человек

-
-
- Сообщения: 14205
- Зарегистрирован: 19.04.2002 (Пт) 11:40
- Откуда: Russia
alibek » 16.05.2008 (Пт) 8:14
Вещественные числа нельзя сравнивать на равенство.
Только так: (a1-a2)<e
Lasciate ogni speranza, voi ch'entrate.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Mikle, SemrushBot, Yandex-бот и гости: 3