【问题标题】:lg Function in Visual BasicVisual Basic 中的 lg 函数
【发布时间】:2021-06-11 20:13:13
【问题描述】:

这是一个非常奇怪的问题。

我有一个客户,需要他的程序的更新版本。他给了我所有的旧文件,告诉我这是一个 1995 年的 Visual Basic 程序。

由于我出生于 2002 年,我没有意识到那时甚至没有 Visual Basic。

反正语法好像是一样的

VERSION 2.00
Begin Form REDACTED 
   BackColor       =   &H00C0C0C0&

...

Dim ja
Dim lwi1(6) As Double
Dim lwaa(6) As Double
Dim lwa(6) As Double
Dim rr(6) As Double

然后我看到下面一行

zwert1 = lg(1# - x) / lg(1# - xcr)

并试图找到lg()的文档。

搜索了大约一个小时后,我放弃了。我认为它是log(),但我不确定,而且我很困惑这是用哪种语言编写的,有一些 PowerPascal (??) 文件的日期为 1989 年,引用代码的文件类型是 @987654327 @。

我感觉自己就像在博物馆里,没有文件或指南。

谁能帮我弄清楚这是什么语言,以及 lg() 实现了什么?

【问题讨论】:

  • 可能是Visual Basic 4的log10Logarithm(log, lg, ln)
  • @Gustav 说得通!它只有一个输入,似乎就是这样。如果您将其打包成一个问题,我可以将其标记为已解决:)
  • 好的,我已将其移至答案。
  • 只是补充一点历史事实:Visual Basic 自 90 年代初就开始出现(据我所知:91 或 92 年代早期 - 我购买了我的 VB 1 许可证)

标签: vba basic


【解决方案1】:

可能是 Visual Basic 4 的 log10Logarithm(log, lg, ln)

这是 VBA 的替代品:

Public Function Log10( _
    ByVal Value As Double) _
    As Double

' Returns Log 10 of Value.
' 2015-08-17. Gustav Brock, Cactus Data ApS, CPH.

    Const Base10    As Double = 10

    ' No error handling as this should be handled
    ' outside this function.
    '
    ' Example:
    '
    '     If MyValue > 0 then
    '         LogMyValue = Log10(MyValue)
    '     Else
    '         ' Do something else ...
    '     End If
    
    Log10 = Log(Value) / Log(Base10)

End Function

【讨论】:

  • 谢谢,但我正在用 PHP 为 Web 重建它。但你也认识到它是以 10 为底的对数,我在 100 年内都不会想出这个!
  • 记得将其标记为已接受的答案,而不仅仅是点赞。
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多