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

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

Войти
Регистрация
Восстановить пароль
 
Дмитрий84
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
#1

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

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

Есть точка
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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 10:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разность между int и float (C++):

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

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

Функции float average(int arrray[],int from,int to) - C++
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции должно быть среднее значение элементов...

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

Int в Float - C++
Доброго времени суток. у меня уже второй раз возник вопрос по поводу перевода Int в Float Sr2=(float)S2/size; тут переменная Sr2 типа...

Преобразование int в float - C++
Добрый день! int x = 20110511; double a = x; cout&lt;&lt;x&lt;&lt;' '&lt;&lt;a&lt;&lt;'\n'; Результат: 20110511 2.01105e+007 Число float...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jewbacabra
Эксперт PHP
2475 / 2063 / 780
Регистрация: 24.04.2014
Сообщений: 6,073
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
Дмитрий84
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
Jewbacabra
Эксперт PHP
2475 / 2063 / 780
Регистрация: 24.04.2014
Сообщений: 6,073
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
Дмитрий84
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
Jewbacabra
Эксперт PHP
2475 / 2063 / 780
Регистрация: 24.04.2014
Сообщений: 6,073
07.05.2014, 11:11 #6
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
может printf надо с каким нибудь другим значением %...
не надо
Цитата Сообщение от Дмитрий84 Посмотреть сообщение
попробовал points[1][i].x - тут косяк (они большие)
нужно исправлять
1
Дмитрий84
1 / 1 / 0
Регистрация: 30.04.2014
Сообщений: 19
07.05.2014, 11:15  [ТС] #7
они норм в проге работают - точки на экране отрисовываются корректно и по координатам совпадают.
просто решил вытащить на свет их значение (printf) и понять не могу от куда такие цифры, было подозрение что if не отрабатывает совсем, увеличил 25 до 100025 и вроде всё работает, но с координатами я тут связь найти не могу.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 11:15
Привет! Вот еще темы с ответами:

char[] в int, float. - C++
Интересует такой вопрос: Допустим у меня есть массив из char, и в этом массиве посимвольно лежат цифры (через %s), т.е: char ach;...

int или float - C++
здрасьти, p=p*6; каким должен быть тип у p? int или float? или без разницы?

float double int - C++
Доброй ночи, препод совсем запарил, то ему не так, то ему не эдак. // 8.2.cpp: определяет точку входа для консольного приложения. // ...

int/int != float? Why not? - C++
Всем доброго времени суток! Объясните пожалуйста, почему результатом этих операций является целочисленное значение. Ведь должно...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.05.2014, 11:15
Ответ Создать тему
Опции темы

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