Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
#1

Сравнение float. - C++

16.04.2012, 20:38. Просмотров 2311. Ответов 12
Метки нет (Все метки)

Доброго времени суток!

Помогите пожалуйста сформулировать условие.

Есть определенный объект, который следит за передвижением мыши, делаю всё следующим образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 float Rad = (float)-atan2(mouse_x-_x, mouse_y-_y); // получаю угол от объекта до мыши
  
  //осуществляю поворот объекта:
  if( Rad != 0.0f){
    
    if(_Radius > Rad)
    {
      _Radius -= 2.0f *dt;
    }
    
    if(_Radius < Rad)
    {
      _Radius += 2.0f *dt;
    }
  }
Мне нужно как-то узнать, что поворот был совершен, как это можно сделать?
Пытался сравнить _Radius и Rad, следующим образом:

C++
1
if( ( (Rad / 2*M_PI) + 1.0f - (_Radius / 2*M_PI) + 1.0f) < 0.00001f )
Но видимо, делаю, что-то не так.
Помогите пожалуйста.

Добавлено через 1 час 21 минуту
Никто не поможет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 20:38     Сравнение float.
Посмотрите здесь:

Сравнение float - C++
void setup() { Serial.begin(9600); float azimuth = 0; float course = 180; float a = sin((azimuth -...

float - C++
Столкнулся с такой проблемой. Допустим float a=0.125; При выводе printf(&quot;%.2f&quot;,a) выводит 0.13, а мне надо 0.12

float *m=new float[n] - C++
в задаче на массивы попалось float *m=new float.Что это значит?

Float - C++
Доброго всем времени суток. Я новичок в программировании и только начал учится прошу вашего понимания и помощи. Расскажите пожалуйста что...

c++ string to float - C++
string to float или double обычная консоль как перевести

float vs string - C++
в общем есть такая конструкция FILE* pfi; char* fn = &quot;D:/test.txt&quot;; pfi= fopen(fn,&quot;w+&quot;); fputs(&quot;\tx=&quot;,pfi); fputs(x,pfi); ...

Строка с float - C++
ПодСкажите пожалуйста, что к чему в этой строке float**name = new float*; И что и как понимать эту строку char *pte = NULL;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
16.04.2012, 21:20     Сравнение float. #2
Цитата Сообщение от Саймон Посмотреть сообщение
Мне нужно как-то узнать, что поворот был совершен
Как вариант:
1) после выполнения поворота логическому флагу присвоить значение истина.
2) при проверке на поворот проверять флаг. Если истина - был поворот. После проверки выставить ложь.
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
16.04.2012, 21:43  [ТС]     Сравнение float. #3
Спасибо, конечно. Но мне как раз нужно узнать, когда выставлять флаг А узнать никак не могу, потому что _Radius и Rad - никак не получается сравнить на равенство.
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
16.04.2012, 21:58     Сравнение float. #4
После того, как осуществили поворот.
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
16.04.2012, 22:09  [ТС]     Сравнение float. #5
Цитата Сообщение от HighPredator Посмотреть сообщение
После того, как осуществили поворот.
Как узнать, что поворот осуществлен?
HighPredator
5474 / 1840 / 342
Регистрация: 10.12.2010
Сообщений: 5,431
Записей в блоге: 3
16.04.2012, 22:14     Сравнение float. #6
Цитата Сообщение от Саймон Посмотреть сообщение
Как узнать, что поворот осуществлен?
У вас есть что-то, что вращается. Вращение, раз оно есть, так или иначе описано. Вот там, где описано и смотрите.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.04.2012, 09:19     Сравнение float. #7
Цитата Сообщение от Саймон Посмотреть сообщение
if( Rad != 0.0f)
А вот это условие никогда не будет истинно Или Вы как раз об этом?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:25     Сравнение float. #8
Цитата Сообщение от fasked Посмотреть сообщение
А вот это условие никогда не будет истинно. Или Вы как раз об этом?
Почему же? По-моему оно как раз почти всегда будет истинно.
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
17.04.2012, 09:41     Сравнение float. #9
Цитата Сообщение от lazybiz Посмотреть сообщение
Почему же? По-моему оно как раз почти всегда будет истинно.
Чистый ноль в float сложно получить.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:43     Сравнение float. #10
Цитата Сообщение от Nekto Посмотреть сообщение
Чистый ноль в float сложно получить.
В том то и дело. Вникни в условие! Там стоит != !!
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
17.04.2012, 09:50     Сравнение float. #11
Цитата Сообщение от lazybiz Посмотреть сообщение
В том то и дело. Вникни в условие! Там стоит != !!
Так указывают на то, что смысла в этом if в таком виде нету.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.04.2012, 09:54     Сравнение float. #12
Указывают на то, что "условие никогда не будет истинно".

Чистый ноль в float сложно получить.
Этим тоже указывают на то в if нету смысла?
Ошибся - признай, что уж упираться.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2012, 10:24     Сравнение float.
Еще ссылки по теме:

Точность float - C++
Объясните, пожалуйста,когда у числа типа float точность 7 цифр, а когда 8. Желательно с примером)Весь интернет облазил, ответ так и не...

Непонятка с float - C++
float s = (123 * 100 / 360000); cout &lt;&lt; fixed &lt;&lt; setprecision(3) &lt;&lt; s; По идее, в консоли должно вывести &quot;0,034&quot;, но видимо с++ не...

Разъяснение float f = 1.2F; - C++
Вчера читал статью про C++ и встретил код, написанный следующим методом float f = 1.2F; и пришел в замешательство. Переменная f...

abs(float x) - C++
Я не понимаю почему но у меня функция abs возвращает модуль от int чисел и всегда 0 от double чисел. В чём может быть проблема?Хотя вот в...

ERROR with float - C++
Здравствуйте.. задача про нахождение общего сопротивления для параллельного и последовательного соединений(здесь все на кыргызском), но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
17.04.2012, 10:24     Сравнение float. #13
Цитата Сообщение от lazybiz Посмотреть сообщение
В том то и дело. Вникни в условие! Там стоит != !!
Тут я проглядел - мой косяк
Ну значит оно всегда будет истинно. В любом случае логика программы нарушена и соответственно программа работает не так как ожидает автор.
Такое условие бесполезно. Его можно убрать вообще.
Yandex
Объявления
17.04.2012, 10:24     Сравнение float.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru