mapx的Distance的奇怪问题!(100分)

  • 主题发起人 主题发起人 zangqi
  • 开始时间 开始时间
Z

zangqi

Unregistered / Unconfirmed
GUEST, unregistred user!
VB中
Dim ds Asdo
uble
ds = Map1.Distance(0, 0, 180, 0)
MsgBox "距离=" + Format$(ds, "#.###") + "公里"
DS的值为12436.792
在delphi中,
edit1.Text := floattostr(map1.Distance(0,0,180,0));
值为2.63659674624068E-308
为什么在delphi中算出的值是这样的?如何解决?
 
路过的捧个人场啊!.....
 
var
earthCircumference:do
uble;
tempCirc: string;
begin

Map1.MapUnit := miUnitMile;
earthCircumference := 2 * Map1.Distance(0, 0, 180, 0);
tempStr := FloatToStr(earthCircumference);
Application.MessageBox(PChar('Earth''s Circumference: ' +
tempCirc + ' miles.'),'Info',0);
end;
 
Mapx online help
 
同样的地图,同样的函数,在VB和DELPHI中算出的结果为什么不一样?(delphi的明显有误E-308)
看了mapx的帮助里面关于Distance method (Map object)的delphi的例子
var
earthCircumference:do
uble;
tempCirc: string;
begin

Map1.MapUnit := miUnitMile;
earthCircumference := 2 * Map1.Distance(0, 0, 180, 0);
tempStr := FloatToStr(earthCircumference);
Application.MessageBox(PChar('Earth''s Circumference: ' +
tempCirc + ' miles.'),'Info',0);
end;


我试了还是不行!
 

---------------------------
Earth's Circumference: 24873.584977783 miles.
---------------------------

上面是我在delphi6执行mapX例子的结果,你的结果是多少?

需要注意的是mapunit,单位不同数字肯定是不同的。

 
Earth's Circumference: 4.82238312685783E-307 miles.
我在D6+mapx4.5的环境下得到的结果!
VB+mapx4.5就正确!
为什么,我快疯了.....

procedure TForm1.Button1Click(Sender: TObject);
var
earthCircumference:do
uble;
tempCirc: string;
begin

Map1.MapUnit := miUnitMile;
earthCircumference := 2 * Map1.Distance(0, 0, 180, 0);
tempCirc := FloatToStr(earthCircumference);
Application.MessageBox(PChar('Earth''s Circumference: ' +
tempCirc + ' miles.'),'Info',0);
edit1.Text := 'Earth''s Circumference: ' + tempCirc + ' miles.'
end;

 
Earth's Circumference: 4.82238312685783E-307 miles.
我在D6+mapx5.0的环境下换了一台PC得到的结果!
 
大侠们帮帮忙呀,我还想继续用DELPHI开发呀!
 
算了,我自己解决了,散分了。
 
后退
顶部