一个自定义函数的问题
一个函数的问题我的一个自定义函数:
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
[解决办法]
为什么是:dl(VAL(HSX),VAL(HSY), VAL(CZX), VAL(CZY),1) ??
改用:dl(HSX,HSY, CZX, CZY,1)试试看
[解决办法]
把有变量都定义成 Double 型。