剑道书香 发表于 2014-1-10 08:31:15

exp指数函数

      x,y变量类型为Doulbe;
      y:= exp(x);//正常y>0,但在运行当中经常会报为0出错,出错时我监视到exp(x)的值为 1.8126776604e-324,而赋值给数组y以后,相应的y变为0报错。      而监视数组y, 在报错之前的存储有的时候数值范围比这个还大,也未报错。真心搞不懂。求助各位朋友?      报错前数组y的值(2.964393875e-323, 9.8813129168e-324, 0, 0, 0, 0, 0, 0, 0, 0, 0) 。
      所有数据都未超出DELPHI下Double数据类型的数值范围。不明白哪里出错?
      系统为win7旗舰版,delphi为D7企业版





剑道书香 发表于 2014-1-10 08:56:56

没人顶吗 在线求教困扰我多日的问题

jlyjdqk 发表于 2014-1-10 22:47:18

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
x: Integer;
y: array of Double;
begin
for x:=1 to 200 do
begin
y:=Exp(x);
Memo1.Lines.Add(IntToStr(x)+' : '+FloatToStr(y));
end;
end;

end.

不知上面这段程序,是否符合你编程意图,我这运行没任何问题,xp系统。
页: [1]
查看完整版本: exp指数函数