forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   ПАНИКА: деление integer на integer с результатом real (http://forum.boolean.name/showthread.php?t=14040)

IDOL 1234 11.01.2011 22:40

ПАНИКА: деление integer на integer с результатом real
 
Код:
...
var
a:real;
...
a:=3/2;
drawstring(RealToString(a),1,1);
repaint;
delay(5000);

выводит на экран ЕДИНИЦУ! :''((

Как поделить эти несчастные числа? Ищу тангенс наклона графика функции...

baton4ik 11.01.2011 22:43

Ответ: ПАНИКА: деление integer на integer с результатом real
 
floating-point включен?

IDOL 1234 11.01.2011 22:46

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Вроде да. 0.000001 Не помню уже, кто из них как называется.

baton4ik 11.01.2011 23:43

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Вспомнил. Не 3/2, а 3.0/2.0

IDOL 1234 11.01.2011 23:45

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Капец... Нагородил костылей, потерял кучу памяти и времени. Помогите пожалуйста!
2.0 - это, конечно, верно, но у меня числа берутся из переменной. В первом посте 2 и 3 я взял в качестве простейшего примера.

baton4ik 11.01.2011 23:58

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Значит сделай переменные real, иначе никак.

IDOL 1234 12.01.2011 00:15

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Это мееее-е-ееедленно! Это всего лишь вспомогательная функция! Она вообще не должна влиять на скорость выполнения программы. А вызывается она раз 150 в секунду(

baton4ik 12.01.2011 00:21

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Значит придумай что-то, что бы функции не приходилось делить 3 на 2.

ABTOMAT 12.01.2011 01:22

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Лол результат деления инт на инт всегда инт. Обойти никак. Можно только посоветовать использовать именованные константы для часто используемых чисел типа синуса 45°, пи и т.д., но катит только если числа не меняются. А вообще вычисление какого-нибудь синуса нагнёт процессор на намного бОльшее число тактов, чем деление 5 раз дабла на дабл.
упд
Цитата:

но у меня числа берутся из переменной
Ну тогда точно никак. Как минимум один операнд должен быть float/double

JACUK 12.01.2011 01:34

Ответ: ПАНИКА: деление integer на integer с результатом real
 
дибильный метод, но может if a=3 then aa:=3.0

IDOL 1234 12.01.2011 01:46

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Цитата:

Сообщение от JACUK (Сообщение 175318)
дибильный метод, но может if a=3 then aa:=3.0

Так... Паника увеличивается...
В нормальном паскале / и div работают по-разному. А здесь какая-то комашня...

Reizel 12.01.2011 02:03

Ответ: ПАНИКА: деление integer на integer с результатом real
 
(a*1.0)/(b*1.0)
Мое скромное предположение

ViNT 12.01.2011 17:04

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Вложений: 1
Цитата:

Сообщение от ABTOMAT (Сообщение 175316)
Лол результат деления инт на инт всегда инт.

Что я делаю не так?
Вложение 12361
Это Delphi.
А в MP да, вроде никак.

Igor 12.01.2011 18:10

Ответ: ПАНИКА: деление integer на integer с результатом real
 
...
var
a,xz:real;
...
xz:=3;
a:=xz/2;
drawstring(RealToString(a),1,1);
repaint;

Randomize 13.01.2011 17:40

Ответ: ПАНИКА: деление integer на integer с результатом real
 
Блджад! Есть же div.
PHP код:

var
a,b:real;
begin
a
:= 5;
b:= 2;
drawstring(IntToStr(a div b),1,1);
repaint



Часовой пояс GMT +4, время: 20:16.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot