PDA

Просмотр полной версии : Проблемы с типами данных в Delphi



paul11j
17.05.2009, 14:53
Пожалуйста подымите это:

s:=s+inttostr(int(exp(ln(ord(x[q])*strtoint(s4))) mod strtoint(s3));

Типы переменных:
s,x,s3,s4:string,q:integer.
Спасибо.

Игорь Акопян
18.05.2009, 16:03
а что, оно падало?

paul11j
19.05.2009, 11:40
а что, оно падало?
Что не ясно? Проблемы у меня с формулой.

BBB
19.05.2009, 15:08
Вот видите, Вы и сами все знаете! :)
Семь открывающих скобок на шесть закрывающих.

Игорь Акопян
19.05.2009, 16:55
дико извиняюсь, но фраза
Пожалуйста подымите это
вогнала меня в ступор
А так можно было и ошибку привести, может стало бы понятнее где скобки не хватает

paul11j
19.05.2009, 19:11
ахааха.там не в скобке проблема.вот правильно

w:=(trunc(exp(strtofloat(s4)*ln(strtofloat(inttost r(ord(x[q]))))))) mod (trunc(strtofloat(s3)));

Sheka
19.05.2009, 20:28
возможно ли чтобы функция floattostr(X) возвращала какую-то фигню, если х изменяется так:
...
x:=-1;
while x<=1 do begin
x:=x+0.001;
floattostr(x);
...
end;
...

Игорь Акопян
20.05.2009, 11:16
Sheka, если под "фигнёй" вы подразумеваете длинный хвост вида .00000000000351 - то да, это нормально
читать тут (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374) и тут (http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=1217)

чтобы избавиться от хвостов используйте функцию
Format('%.2f', [X]); // .2 - вывод 2-х знаков после запятой

Duncon
20.05.2009, 11:32
Мну возбуждает подобный подход..

function FloatToStrDig(const X: Extended; Digits: Integer = 3): string;
begin
Str(X:0:Digits, Result);
end;

Sheka
20.05.2009, 16:09
если под "фигнёй" вы подразумеваете длинный хвост вида .00000000000351 - то да, это нормально
читать тут и тут

Спасибо за первое "тут".
даже не представлял, что такое возможно.

P.S. Под "фигней" я подразумевал что-то типа -7.3015691270939E-8.
я просто делал вывод в таблицу, и последних знаков не видел.