首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 中的一个数学有关问题

2012-02-12 
delphi 中的一个数学问题我编写了一个UCoord.pas,具体:typePACoordPointrecordX:doubleY:doubleendfun

delphi 中的一个数学问题
我编写了一个UCoord.pas,   具体:
type
        PACoordPoint   =   record
            X:   double;
            Y:   double;                        
    end;

    function   AAA(L,   B:Extended):PACoordPoint;

function   AAA(L,B:Extended;convert_type:integer):PACoordPoint;
      ...
      N:=a   /   (   sqrt(   1-   e*e*sin(O_B)*sin(O_B)   )   );
      pAP.X:=(N+0)*   cos(O_B)*   cos(O_L); // 断点
      pAP.Y:=(N+0)*   cos(O_B)*   sin(O_L); 
end;

另一个Unit1.pas文件
procedure   TForm1.Button1Click(Sender:   TObject);
var
    pAP:   PACoordPoint;
    x,y   :   double;
begin
    pAP   :=   UCoord.BLH_TO_XYZ(119.002666,34.0098333);
    x   :=   pAP.X;
edit1.Text   :=   floattostr(x);

奇怪的edit1.text出来的数据是7.29112201955642E-304
但我用断点调试的时候, 看到function   AAA里面的pAP.X是 -2563471.5438
显示的时候数据就变样了?~
好像不论我输入什么参数进去, 到最后显示在edit1.text值都是一样的. 但是看断点的时候就不一样.
请教.

[解决办法]
function AAA(L, B:Extended):PACoordPoint;

function AAA(L,B:Extended;convert_type:integer):PACoordPoint;
...
N:=a / ( sqrt( 1- e*e*sin(O_B)*sin(O_B) ) );
pAP.X:=(N+0)* cos(O_B)* cos(O_L); // 断点
pAP.Y:=(N+0)* cos(O_B)* sin(O_L); 
end;

我不知道你这个pAP是从什么地方来的,不过我知道如果需要得到值,在END前需要加一个
Result := pAP;

热点排行