| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 357 人关注过本帖
标题:[求助]一个函数的问题
只看楼主 加入收藏
linvv
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-4
收藏
 问题点数:0 回复次数:2 
[求助]一个函数的问题
我的一个自定义函数:
Function dl(HSX!, HSY!, CZX!, CZY!, A As Byte) As Double
dl = Sqr((HSX - CZX) ^ 2 + (HSY - CZY) ^ 2)
End Function

在立即窗口运行如下:
HSX=2722434.164
CZX=2722821.531
HSY=509845.434
CZY=510114.821
?Sqr((HSX - CZX) ^ 2 + (HSY - CZY) ^ 2)
471.828939826776 '用公式计算的结果
?dl(VAL(HSX),VAL(HSY), VAL(CZX), VAL(CZY),1)
471.726036089805 ‘用函数计算的结果,与公式计算的结果不一样!!??

真是见鬼了,明明变量值跟计算公式一样,结果却不一样,请高人指点一二。

又有,当去掉HSX,CZX的百万位数后,自定义函数的结果又变了(公式计算的也变了一点点),这是怎么回事????
这只是求两组差的平方和的平方根,这两组差值总是不变的,公式跟函数怎么会有变化??
HSX=722434.164
CZX=722821.531
HSY=509845.434
CZY=510114.821
?Sqr((HSX - CZX) ^ 2 + (HSY - CZY) ^ 2)
471.828939826681
?dl(VAL(HSX),VAL(HSY), VAL(CZX), VAL(CZY),1)
471.777345027556

[此贴子已经被作者于2007-6-13 11:57:48编辑过]

搜索更多相关主题的帖子: 函数 
2007-06-13 11:49
linvv
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-4
收藏
得分:0 
如果再去掉一位高位数,两个的计算结果又会有变,
请高手指点指点,感谢!!
2007-06-13 11:59
linvv
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-4
收藏
得分:0 
原来是定义变量的问题。要定义成double才可以。
但定义成single还不够吗??变量及计算过程中都没有出现超出单精型范围的数值啊??
2007-06-13 16:51
快速回复:[求助]一个函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015954 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved