Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Incompatible type 
V
    Опции темы
microo10
Дата 15.2.2012, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Код

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
Proc,L:Integer;
A,B:Double;
begin
  A:= 2000;
  B:=100;
  Proc:= B * 100 / A;
  L:= Image1.Height * Proc / 100;
  Pos := L;
  Draw;
end;

Ругается на:
Код

[DCC Error] Unit1.pas(60): E2010 Incompatible types: 'Integer' and 'Extended'
[DCC Error] Unit1.pas(61): E2010 Incompatible types: 'Integer' and 'Extended'

Скажите в чем проблема? Мне нужно что бы конечная переменная Pos была integer smile 
 smile 
PM MAIL   Вверх
Данкинг
Дата 15.2.2012, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Нужно - округляй до целого.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
superVad
Дата 15.2.2012, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



microo10, В какой строке ошибка?
Подозреваю, что в 9. Round и Trunc в помощь.
PM MAIL   Вверх
northener
Дата 15.2.2012, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(microo10 @  15.2.2012,  11:37 Найти цитируемый пост)
Мне нужно что бы конечная переменная Pos была integer 

Выбирай:
MyPos:=Trunc(...);
MyPos:=Round(...);


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
microo10
Дата 15.2.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Спасибо огромное,оперативно помогли!!!)))
PM MAIL   Вверх
БелАмор
Дата 15.2.2012, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 7
Всего: 17



Странно, что никто не вспомнил про целочисленное деление div
В таких случаях (вычисление координат) его применение максимально логично, только следует помнить, что, чтобы не увеличивать погрешность, сначала следует умножать, а уже потом делить.
PM   Вверх
northener
Дата 15.2.2012, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(БелАмор @  15.2.2012,  14:12 Найти цитируемый пост)
Странно, что никто не вспомнил про целочисленное деление div

Это годилось бы только в конкретном случае - одна операция умножения и одна операция деления. В более сложных вычислениях погрешность бы накапливалась. 


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
БелАмор
Дата 15.2.2012, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 10.6.2010
Где: Россия

Репутация: 7
Всего: 17



Цитата(northener @  15.2.2012,  14:28 Найти цитируемый пост)
Это годилось бы только в конкретном случае - одна операция умножения и одна операция деления. В более сложных вычислениях погрешность бы накапливалась. 

Я не случайно сделал оговорку о конкретной задаче: "вычисление координат". Для этого обычно хватает div. Координаты изначально имеют целочисленную природу и я не вижу смысла без необходимости переходить на вычисления с плавающей точкой, а потом заниматься округлением.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.