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