| 
| 
 | Вопрос # 6 061/ вопрос решён / | 
 |  Доброго времени суток. я хочу узнать из за чего происходит такой сбой, использую функцию возведения в степень: a:=StrTofloat(edt1.Text);
 b:=StrTofloat(edt2.Text);
 c:=Power(a,b);
 edt3.Text:=floatToStr(c);
 
 если например возвожу 10 в минус 4 степень получается 0,0001, но если возведу в минус 5 то уже происходит какой то сбой и получается 1E-5. Как устранить эту проблему, если на -5 уже глючит, а дальше уж тем более
 
|  |   Вопрос задал: skew (статус: Посетитель)Вопрос отправлен: 9 апреля 2012, 15:37
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: DNK Здравствуйте, skew!Нужно использовать функции FloatToStrF или format.
 
|  | Ответ отправил: DNK (статус: Студент)Время отправки: 10 апреля 2012, 22:56
 
 |  
 Мини-форум вопросаВсего сообщений: 19; последнее сообщение — 11 апреля 2012, 13:09; участников в обсуждении: 5. 
|   | DNK (статус: Студент), 9 апреля 2012, 15:41 [#1]:это не сбой, а фича! "Digital Networked Knight" |  
|   | skew (статус: Посетитель), 9 апреля 2012, 15:45 [#2]:как исправить? ведь переменная   Extended	тянет   3.6*10-4951 .. 1.1*104932-1
 |  
|   | DNK (статус: Студент), 9 апреля 2012, 15:54 [#3]:Нужно использовать функции FloatToStrF или format. "Digital Networked Knight" |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 15:58 [#4]: Цитата (skew): но если возведу в минус 5 то уже происходит какой то сбой и получается 1E-5. Как устранить эту проблему, если на -5 уже глючит, а дальше уж тем более Это не сбой. 1е-5 - это и есть 10-5.
 Используй функцию FloatToStrF().
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | skew (статус: Посетитель), 9 апреля 2012, 16:05 [#5]:я не понял как задать FloatToStrF()  у меня при запуске ошибку выдает |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 16:26 [#6]: Цитата (skew): у меня при запуске ошибку выдает  Нам догадаться, что за ошибка? У нас тут телепатов нету, их всех забрали на работу в Microsoft.
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | skew (статус: Посетитель), 9 апреля 2012, 16:47 [#7]:))) не не ошибку, а не запускается, а в логе ошибок пишет [Ошибка] Unit1.pas(57): Undeclared identifier: 'StrToFloatF'
 [Фатальная ошибка] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 17:01 [#8]:Я ж тебе писал: 
 Цитата (min@y™): Используй функцию FloatToStrF().  А ты какую использовать пытаешься? Посмотри внимательно.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | skew (статус: Посетитель), 9 апреля 2012, 17:19 [#9]:я просто не пойму как задать переменную такого типа, если FloatToStr это Extended . то какая StrToFloatF? |  
|   | DNK (статус: Студент), 9 апреля 2012, 19:35 [#10]:Тебе уже на двух языках объяснили, что нет такой функции StrToFloatF в природе. Не придумали ещё. "Digital Networked Knight" |  
|   | skew (статус: Посетитель), 9 апреля 2012, 19:41 [#11]:вот вообщем код программы: 
 unit Unit1;
 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Math, StdCtrls, xpman;
 
 type
 TForm1 = class(TForm)
 edt1: TEdit;
 edt2: TEdit;
 edt3: TEdit;
 edt4: TEdit;
 edt5: TEdit;
 edt6: TEdit;
 Button2: TButton;
 lbl1: TLabel;
 lbl2: TLabel;
 lbl3: TLabel;
 lbl4: TLabel;
 lbl5: TLabel;
 lbl6: TLabel;
 lbl7: TLabel;
 Button1: TButton;
 edt7: TEdit;
 edt8: TEdit;
 lbl8: TLabel;
 lbl9: TLabel;
 procedure Button2Click(Sender: TObject);
 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 
 var
 Form1: TForm1;
 a,b,c,a1,b1,c1,s,s1: extended;
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.Button2Click(Sender: TObject);
 begin
 if (edt1.Text='') or (edt2.Text='') then
 Button1.Click
 else
 begin
 if (edt4.Text='') or (edt5.Text='') then
 begin
 if edt7.Text = '' then
 form1.Show
 else
 s:=StrTofloat(edt7.Text);
 a:=StrTofloatf(edt1.Text);
 b:=StrTofloat(edt2.Text);
 c:=Power(a,b);
 s1:=c*s;
 edt3.Text:=FloatToStr(c);
 edt8.Text:=floatToStr(s1);
 end
 else
 begin
 a:=StrTofloat(edt1.Text);
 b:=StrTofloat(edt2.Text);
 c:=Power(a,b);
 edt3.Text:=floatToStr(c);
 a1:=StrTofloat(edt4.Text);
 b1:=StrTofloat(edt5.Text);
 c1:=Power(a1,b1);
 edt6.Text:=floatToStr(c1);
 if c>c1 then
 lbl1.Caption:='>'
 else
 lbl1.Caption:='<';
 end;
 end;
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 if (edt1.Text='') or (edt2.Text='') then
 begin
 a1:=StrTofloat(edt4.Text);
 b1:=StrTofloat(edt5.Text);
 c1:=Power(a1,b1);
 edt6.Text:=floatToStr(c1);
 end
 else
 begin
 a1:=StrTofloat(edt4.Text);
 b1:=StrTofloat(edt5.Text);
 c1:=Power(a1,b1);
 edt6.Text:=floatToStr(c1);
 a:=StrTofloat(edt1.Text);
 b:=StrTofloat(edt2.Text);
 c:=Power(a,b1);
 edt3.Text:=floatToStr(c);
 if c>c1 then
 lbl1.Caption:='>'
 else
 lbl1.Caption:='<';
 end;
 end;
 
 end.
 |  
|   | skew (статус: Посетитель), 9 апреля 2012, 19:44 [#12]:  Нужно использовать функции FloatToStrF Это разве не твои слова?
 |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 20:14 [#13]: Цитата (skew): Это разве не твои слова?  Да, это его слова. И они правильные.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | skew (статус: Посетитель), 9 апреля 2012, 21:20 [#14]:но в предыдущем его сообщение он их опровергает. можешь в крации на примере показать как использовать ее |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 21:30 [#15]: Цитата (skew): но в предыдущем его сообщение он их опровергает Да где? Процитируй!
 
 Цитата (skew): можешь в крации на примере показать как использовать ее  А чо такое "крации"?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 9 апреля 2012, 21:33 [#16]:Не пойму, ну неужели влом тупо открыть хэлп и прочитать, как там чо работает. Там жеж всё чёрным по белому разжёвано! Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Мережников Андрей (статус: Абитуриент), 9 апреля 2012, 21:35 [#17]: Цитата (skew): но в предыдущем его сообщение он их опровергает не видишь разницы между FloatToStrF и придуманной тобой StrToFloatF ?
 
 Цитата (skew):  можешь в крации на примере показать для крации есть help
 |  
|   | DNK (статус: Студент), 10 апреля 2012, 22:55 [#18]:Ржу - не магу, над ним!   "Digital Networked Knight" |  
|   | bugmenot (статус: 3-ий класс), 11 апреля 2012, 13:09 [#19]:крация крации розня! виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  18 апреля 2012, 17:04: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |