vb.net - ATN 从 QBasic 到 VB.Net

标签 vb.net translation qbasic

我目前正在将程序从 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)
我使用“-5.08864764726704”作为我的 X(Z, 1)

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

我做错了什么吗?

谢谢

最佳答案

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

很久以前,当恐龙在地球上行走时,人们在 QBasic 中使用单精度 float 学,他们知道该变量只能存储 7 位有效数字。

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

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

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

相关文章:

ios - XLIFF 文件、键和带有 NSLocalizedString 的长字符串

QBasic:如何从另一个程序中运行一个程序?

VB.net DataGridView 更改 Cell.FormattedValue

c# - LINQ to SQL to XML(在 C# 中使用 XML 文字)

mysql - 如何关联数据库中单个属性的值

vb.net - 如何通过 vb.net 程序(自动)创建文件作为其他程序的输入?

Q基本和。快速BASIC

.net - 如何在 VB.NET 中使用泛型?

vb.net - 在 datagridview 中命名列

dictionary - os x 自定义字典或自定义查找功能