鱼C论坛

 找回密码
 立即注册
查看: 3000|回复: 2

exp指数函数

[复制链接]
发表于 2014-1-10 08:31:15 | 显示全部楼层 |阅读模式
30鱼币
        x,y变量类型为Doulbe;
        y[i]:= 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企业版





评分

参与人数 1贡献 +1 收起 理由
comeheres + 1 如果已经解决,就把分给3楼那位

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-10 08:56:56 | 显示全部楼层
没人顶吗 在线求教  困扰我多日的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[1..200] of Double;
begin
for x:=1 to 200 do
begin
  y[x]:=Exp(x);
  Memo1.Lines.Add(IntToStr(x)+' : '+FloatToStr(y[x]));
end;
end;

end.

不知上面这段程序,是否符合你编程意图,我这运行没任何问题,xp系统。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 02:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表