ATN from QBasic to VB.Net



我目前正在将一个程序从QBasic翻译到VB.Net,我有这行代码:

RSA = 270 + 180 / PI * (ATN(ABS(X(Z, 2) / X(Z, 1))))

我把它翻译成

RSA = 270 + 180 / PI * (Math.Atan(Math.Abs(arrayX(z - 1, 2 - 1) / arrayX(z - 1, 1 - 1))))

对于VB.Net,但是结果不同。以下是一些信息:

PI=3.141592654

对于我的测试
我使用"6.8929106501697825"作为我的X(Z, 2)
我的X(Z, 1)值使用了"-5.08864764726704"

QBasic的结果是:323.9964
VB.Net的结果是:323.5636369944437

我做错什么了吗?

感谢

我怀疑您遇到了QBasic的老式16位限制。

早在恐龙在地球上行走的时候,人们在QBasic中使用单精度浮点数学,他们知道这个变量只能存储7个有效数字。

因此,如果你的QBasic数据类型是单身,那么无论你相信你输入了什么,在QBasic中,它们实际上都是:

PI = 3.141592
X(Z, 2) = 6.892910
X(Z, 1) = -5.088647

我刚刚了解到我的计算没有问题。结果不同的原因只是因为Visual Basic更精确,所以我的计算更准确。

非常感谢你的回答!

相关内容

  • 没有找到相关文章

最新更新