Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возведение в квадрат


Andrey K ©   (2012-08-07 16:28:00) 

Почему:

var
 i: integer;
 i1: double;
begin

 i := 100000;
 i1 := sqr(i);
end;
Результат: i1=1410065408 ???


Anatoly Podgoretsky   (2012-08-09 08:36:00) [1]

> Германн  (09.08.2012 02:30:13)  [13]

Хватит и одного, достаточно возвести в квадрат.


Германн   (2012-08-09 02:30:00) [2]


> Jeer ©   (08.08.12 21:49) [12]
>
>
> > А эта прога со спутниками никак не связана?
>
>
> Да и пусть "связана" со спутниками.
> Важнее,чтобы не была связана с атомщиками :)

У атомщиков всё-таки меньше программистов, но больше железячников! :)


Jeer   (2012-08-08 21:49:00) [3]


> А эта прога со спутниками никак не связана?


Да и пусть "связана" со спутниками.
Важнее,чтобы не была связана с атомщиками :)


NoUser   (2012-08-08 21:43:00) [4]

А эта прога со спутниками никак не связана? Ж)


Andrey K   (2012-08-07 23:58:00) [5]

Спасибо всем за помощь. Прога работала уже лет семь. Я считал её отлаженной. Ан нет.


AV   (2012-08-07 17:13:00) [6]


> i1 := Sqr(Extended(i));
>
> Плюсы, минусы, подводные камни?

D7 Invalid typecast


Anatoly Podgoretsky   (2012-08-07 16:59:00) [7]

> ProgRAMmer Dimonych  (07.08.2012 16:56:07)  [7]

Зачем, когда проще I: Extended;


ProgRAMmer Dimonych   (2012-08-07 16:56:00) [8]

Интересно, кстати, мнение коллег по поводу варианта

i1 := Sqr(Extended(i));

Плюсы, минусы, подводные камни?


Anatoly Podgoretsky   (2012-08-07 16:54:00) [9]

> Andrey K  (07.08.2012 16:49:05)  [5]

Ту, которая Extended
Для этого смени тип с Integer на Extended
Да и включи проверку переполнения в компиляторе


Andrey K   (2012-08-07 16:49:00) [10]

Про это я читал. А как использовать ту?


Anatoly Podgoretsky   (2012-08-07 16:42:00) [11]

> Andrey K  (07.08.2012 16:30:01)  [1]

Потому что их две функции с одинаковым именем, ты используешь не ту.


Andrey K   (2012-08-07 16:39:00) [12]

Спасибо. А то у меня уже мозг снесло.


MBo   (2012-08-07 16:36:00) [13]

Вычисления проводятся с целым типом, происходит переполнение, а приведение к double - уже потом.
i1 := i;
i1 := Sqr(i1);


Andrey K   (2012-08-07 16:30:00) [14]

И как с этим бороться?


Наверх

Титульная страница Поиск, карта сайта Написать письмо