С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
1

Разность между int и float

07.05.2014, 10:47. Показов 1268. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть точка
C++
1
2
3
4
5
6
7
8
9
CV_INLINE  CvPoint  cvPoint( int x, int y )
{
    CvPoint p;
 
    p.x = x;
    p.y = y;
 
    return p;
}
и еще одна
C++
1
2
3
4
5
6
typedef struct CvPoint2D32f
{
    float x;
    float y;
}
CvPoint2D32f;
надо найти их разность (по условию)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if( add_remove_pt )
 
                {
 
                    double dx = pt.x - points[1][i].x;
 
                    double dy = pt.y - points[1][i].y;
 
 
                    printf ("dd=%d \n",abs(dx*dx + dy*dy));
                    if( dx*dx + dy*dy <= 25 )
 
                    {
 
                        add_remove_pt = 0;
 
                        continue;
 
                    }
printf в данном случае выводит огромные цифры то положительные то отрицательные не имеющие отношения к координатам, как сделать чтоб работало?

Добавлено через 29 минут
сейчас Printf выводит числа с разбросом от 20 до 100000 и все не целые
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2014, 10:47
Ответы с готовыми решениями:

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int)
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй...

Как взять разность по модулю между двумя числами int?
Суть в теме: &quot;Как взять разность по модулю между двумя числами int?&quot;. Заранее спасибо :)

Функции float average(int arrray[],int from,int to)
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции...

Почему при умножении разнотипных переменных (например, float и int) получается int?
Почему при умножении разнотипных переменных (float price и int unit) получается int? Это же не...

6
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.05.2014, 10:49 2
для вывода double printf ("dd=%lf \n",abs(dx*dx + dy*dy));
И точно abs(dx*dx+dy*dy), а не sqrt(dx*dx+dy*dy)
1
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
07.05.2014, 10:58  [ТС] 3
если ставлю
double printf ("dd=%lf \n",abs(dx*dx + dy*dy));
возмущается - значение типа 'const chsr*' нельзя использовать для инициализации сущности типа double
abs поставил только в принтфе для игнора знаков (почемуто там попадаются отрицательные хотя сумма квадратов должна быть +), там в условии сравнение с 25 (растояние между точками- если маленькой то удаляем)

Добавлено через 40 секунд
а если без double то все равно цифры гигантские
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.05.2014, 11:03 4
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
double printf ("dd=%lf \n",abs(dx*dx + dy*dy));
не double printf(...), а printf(...);
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
а если без double то все равно цифры гигантские
попробуй посмотреть чему dx и dy равны.
1
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
07.05.2014, 11:09  [ТС] 5
dx большие числа
попробовал pt.x - они норм
попробовал points[1][i].x - тут косяк (они большие) но прога с ними работает норм (вырисовывает)
может printf надо с каким нибудь другим значением %...

Добавлено через 1 минуту
оооо c lf вроде норм но большая дробная часть. Как её убрать?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.05.2014, 11:11 6
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
может printf надо с каким нибудь другим значением %...
не надо
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
попробовал points[1][i].x - тут косяк (они большие)
нужно исправлять
1
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
07.05.2014, 11:15  [ТС] 7
они норм в проге работают - точки на экране отрисовываются корректно и по координатам совпадают.
просто решил вытащить на свет их значение (printf) и понять не могу от куда такие цифры, было подозрение что if не отрабатывает совсем, увеличил 25 до 100025 и вроде всё работает, но с координатами я тут связь найти не могу.
0
07.05.2014, 11:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 11:15
Помогаю со студенческими работами здесь

Как происходит преобразование int<<float<int
Как происходит преобразование int&lt;&lt;float&lt;int int n=222222222; float f=(float)n; n=(int)f;...

Перевод Int/FLoat -> QByteArray -> Int/Float
Есть задача переводить float/int данные в бинарный вид и обратно (в последующем для передачи по...

Если результат деления int на int есть тип float
Есть две ситуации: int a = 10; int b = 3; c = a/b; // через несколько строчек тоже самое но...

КВИТАНЦИЯ (номер – int, дата – int, сумма – float)
Помоги решить пожалуйста лабораторную работу, 13 варианта, буду очень признателен! очень срочно !

Float в int или double в int
Надо прибавить в Shape1-&gt;Top+=0,33, но когда перевожу в int то он округляет до нуля, чего быть не...

QMap<int, QVector<float>> копирование QVector<float> в другой вектор
Добрый вечер. У меня есть функция FaceSearchDB. Я хочу копировать значения из vectorа в QMap в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru