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

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
paul11j
Сообщения: 7
Зарегистрирован: 16 мар 2008, 12:29

17 май 2009, 14:53

Пожалуйста подымите это:

Код: Выделить всё

s:=s+inttostr(int(exp(ln(ord(x[q])*strtoint(s4))) mod strtoint(s3));
Типы переменных:
s,x,s3,s4:string,q:integer.
Спасибо.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

18 май 2009, 16:03

а что, оно падало?
Изображение
paul11j
Сообщения: 7
Зарегистрирован: 16 мар 2008, 12:29

19 май 2009, 11:40

Игорь Акопян писал(а):а что, оно падало?
Что не ясно? Проблемы у меня с формулой.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

19 май 2009, 15:08

Вот видите, Вы и сами все знаете! :)
Семь открывающих скобок на шесть закрывающих.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

19 май 2009, 16:55

дико извиняюсь, но фраза
&quot писал(а):Пожалуйста подымите это
вогнала меня в ступор
А так можно было и ошибку привести, может стало бы понятнее где скобки не хватает
Изображение
paul11j
Сообщения: 7
Зарегистрирован: 16 мар 2008, 12:29

19 май 2009, 19:11

ахааха.там не в скобке проблема.вот правильно

Код: Выделить всё

w:=(trunc(exp(strtofloat(s4)*ln(strtofloat(inttostr(ord(x[q]))))))) mod (trunc(strtofloat(s3)));
Аватара пользователя
Sheka
Сообщения: 199
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

19 май 2009, 20:28

возможно ли чтобы функция floattostr(X) возвращала какую-то фигню, если х изменяется так:
...
x:=-1;
while x<=1 do begin
x:=x+0.001;
floattostr(x);
...
end;
...
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

20 май 2009, 11:16

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

чтобы избавиться от хвостов используйте функцию
Format('%.2f', [X]); // .2 - вывод 2-х знаков после запятой
Изображение
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

20 май 2009, 11:32

Мну возбуждает подобный подход..
[syntax=Delphi]
function FloatToStrDig(const X: Extended; Digits: Integer = 3): string;
begin
Str(X::D igits, Result);
end;
[/syntax]
[syntax=Delphi] [/syntax]
Аватара пользователя
Sheka
Сообщения: 199
Зарегистрирован: 17 май 2009, 15:48
Контактная информация:

20 май 2009, 16:09

если под "фигнёй" вы подразумеваете длинный хвост вида .00000000000351 - то да, это нормально
читать тут и тут
Спасибо за первое "тут".
даже не представлял, что такое возможно.

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