我目前正在将程序从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

为了我的测试
我用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

关于vb.net - 从QBasic到VB.Net的ATN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9388113/

10-08 21:20