Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / корявый цикл / 7 сообщений из 7, страница 1 из 1
01.03.2013, 00:02
    #38170354
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Код: plaintext
1.
for(float x=0; x<=3; x+=0.15)

такой цикл почему-то не обрабатывает х=3, хотя должен. подскажите, почему, и как грамотно исправить
можно так
Код: plaintext
1.
for(float x=0; x<=3.00000000001; x+=0.15)

но это как-то непрофессионально
...
Рейтинг: 0 / 0
01.03.2013, 00:03
    #38170355
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Qlewerподскажите, почему
Потому что float это очень неточный тип и складывая кучу рюмок по 0.15 не получишь 3 литра.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.03.2013, 00:08
    #38170356
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Dimitry Sibiryakov,

понятно, спасибо. не разбираюсь в типах(vb6 мне ближе), сделал так:
Код: plaintext
1.
for(double x=0; x<=3; x+=0.15)

вроде работает
...
Рейтинг: 0 / 0
01.03.2013, 00:16
    #38170363
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Qlewerкак грамотно исправить
Код: plaintext
1.
2.
3.
4.
for (int i=0;i<=20;i++){
	float x=0.15*i;
		
}
...
Рейтинг: 0 / 0
01.03.2013, 00:19
    #38170365
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Qlewer,

в vb6 тоже есть целые, плавающие и ошибки округления. с double на это раз просто повезло, с другими константами опять возможна неудача
...
Рейтинг: 0 / 0
01.03.2013, 00:40
    #38170374
Qlewer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
Изопропил,

ясненько, спасибо)
...
Рейтинг: 0 / 0
01.03.2013, 19:18
    #38171459
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
корявый цикл
QlewerDimitry Sibiryakov,

понятно, спасибо. не разбираюсь в типах(vb6 мне ближе), сделал так:
Код: plaintext
1.
for(double x=0; x<=3; x+=0.15)

вроде работает
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / корявый цикл / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]