Мне нужно присвоить значение линейному, но потом, когда я проверяю его, результат неверный. Выражение 1/exp( 2.30258509299 * (abs(dB)/20) )
result равно 0,063095734448 (это правильное значение), но линейное значение равно -3,6854775808e + 4863, а n равно 1,805186914e-307.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure OnCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.OnCreate;
var dB: integer;
linear: extended;
n: Double;
begin
dB := -24;
linear := 1/exp( 2.30258509299 * (abs(dB)/20) );
n := 0.063095734448;
showmessage(inttostr(db));
end;
end.
Что я делаю неправильно икак получить правильное значение?
Примечание: для оценки выражения я использовал команду отладчика «Оценить / изменить».