读书人

delphi 中的一个数学有关问题

发布时间: 2012-02-12 17:16:33 作者: rapoo

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;

读书人网 >.NET

热点推荐