![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Что нужно дописать чтобы в Memo выводило количество знаков после запятой согласно введенному eps?
Вот код программы: Код:
procedure TfrmWhileRepeat.Button2Click(Sender: TObject);
var u,sum,eps:real; i:integer; s:string;
begin
Memo1.Clear;
eps:=strtofloat(edtEps2.Text);
u:=1/2;
sum:=2+1/2;
i:=1;
while u>eps do
begin
i:=i+1;
u:=u/(i+1);
sum:=sum+u;
if CheckSteps.Checked then
begin
s:=format('%10.7f %10.7f',[u,sum]);
Memo1.Lines.Add(s);
end;
end;
edtResult2.Text:=floattostr(sum);
edtControl2.Text:=floattostr(exp(1));
end; |
|
#2
|
||||
|
||||
|
попробуй так:
Код:
uses ..., Math;
...
function GetFloatDigitNum(Eps:extended; MinNum:byte=0):byte;
var ds:byte;
begin
Result:=MinNum;
if Eps<1 then
begin
ds:=Round(Abs(Math.Log10(eps)));
if ds>MinNum then
Result:=ds
end;
end; |
|
#3
|
|||
|
|||
|
Разобрался с выводом в Мемо.
|