VB中算术表达式ln10用VB表达式怎么表示

VB中算术表达式ln10用VB表达式怎么表示,第1张

Log 函数
返回一个 Double,指定参数的自然对数值

语法

Log(number)

必要的 number 参数是 Double 或任何有效的大于 0 的数值表达式。

说明

自然对数是以 e 为底的对数。常数 e 的值大约是 2718282。

如下所示,将 x 的自然对数值除以 n 的自然对数值,就可以对任意底 n 来计算数值 x 的对数值:

Logn(x) = Log(x) / Log(n)

下面的示例说明如何编写一个函数来求以 10 为底的对数值:

Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function

Private Sub Command1_Click()
Dim temarr(500) As String
Dim i As Integer
Dim Temstr As String
Dim j As Integer
Dim temPos As String
Temstr = InputBox("输入一个自然数", "1234")
If Temstr <> "" Then
For i = 1 To Len(Temstr)
temarr(i - 1) = Mid(Temstr, i, 1)
Next
End If
For i = 0 To Len(Temstr) - 1

For j = 1 To Len(Temstr)

e(i) = e(i) + num(i)
num(i) = m / n
这里上下互换一下,然后用替换把"/“换为"\",C语言里的/等于VB语言里的\,然后再看一下是不是
下面是我帮你改后的,而且还稍微添加了一些代码:
Private Sub Command1_Click()
Dim d As Long, num() As Long, e() As Long, n As Long
n = Text1Text
d = n + 5
ReDim num(0 To d + 1) As Long
ReDim e(0 To d + 1) As Long
Dim i As Long, l As Long, m As Long, x As Long
l = 1
n = 3
x = d \ 100
e(0) = 2
e(1) = 5
num(1) = 5
Do While l < d
DoEvents '防止窗口运行时未响应闪退
i = l
m = 0
Do While i <= d
DoEvents
m = 10 m + num(i)
num(i) = m \ n
e(i) = e(i) + num(i)
m = m Mod n
i = i + 1
Loop
Do While (l < d And num(l) = 0)
l = l + 1
DoEvents
Loop
n = n + 1
Form1Caption = "计算中 第" & l - 5 & "位 共" & 100 x & "位 进度" & Round((l - 5) \ x, 6) & "%" '此处添加进度条部分
Loop
i = d
n = 0
Do While i >= 0
DoEvents
e(i) = e(i) + n
n = e(i) \ 10
e(i) = e(i) Mod 10
i = i - 1
Loop
i = 1
d = d - 5
Text2Text = "e=" & e(0) & "" & vbCrLf '修正显示格式
Do While i <= d
DoEvents
Text2Text = Text2Text & e(i)
If i Mod 5 = 0 Then '每5个数字为一组显示
Text2Text = Text2Text & " "
End If
i = i + 1
Loop
End Sub
Private Sub Command2_Click()
CommonDialog1Filter = "文本文件(txt)|txt" '设置要保存的格式
CommonDialog1ShowSave 'd出保存对话框
If Not Len(CommonDialog1FileName) = 0 Then '如果保存的文件名和路径不为空
Open CommonDialog1FileName For Output As #1 '打开文件的路径和文件名进行输出
If Check1Value = 1 Then
Text3Text = Replace(Text2Text, " ", "")
Text4Text = Replace(Text3Text, vbCrLf, "")
Print #1, Text4 '打印Text4的内容
Else
Print #1, Text2
End If
Close #1 '关闭
End If
End Sub

vb也有这个函数。
Exp 函数
      
返回 Double,指定 e(自然对数的底)的某次方。
语法
Exp(number)
必要的 number 参数 number 是 
Double或任何有效的数值表达式。
说明
如果 number 的值超过 
709782712893,则会导致错误发生。常数 e 的值大约是 2718282。
注意   Exp 函数的作用和 
Log 的作用互补,所以有时也称做反对数。

用FORMAT只能用E代替10,例如Format(000001, "0#E+00")显示为10E-06,关于FORMAT可以参看
FORMAT命令说明
字符 说明
无 显示没有格式的数值。
(0) 数字占位符。显示一位数字或是零。如果[url="javascript hhobj_4Click"]表达式[/url]在格式字符串中 0 的位置上有一位数字存在,那么就显示出来;否则,就以零显示。如果数值的位数少于格式表达式中零的位数(无论是小数点的左方或右方),那么就把前面或后面的零补足。如果数值的小数点右方位数多于格式表达式中小数点右面零的位数,那么就四舍五入到有零的位数的最后一位。如果数值的小数点左方位数多于格式表达式中小数点左面零的位数,那么多出的部分都要不加修饰地显示出来。
(#) 数字占位符。显示一位数字或什么都不显示。如果表达式在格式字符串中“#”的位置上有数字存在,那么就显示出来;否则,该位置就什么都不显示。
此符号的工作原理和“0”数字占位符大致相同,不同之处只有在当表达式中数值的位数少于“#”的位数(无论是小数点左方或右方)时,不会把前面或后面的零显示出来。
() 小数点占位符。在一些[url="javascript hhobj_5Click"]国别[/url]是用逗号来当小数点的。小数点占位符用来决定在小数点左右可显示多少位数。如果格式表达式在此符号左边只有正负号,那么小于 1 的数字将以小数点为开头。如想在小数前有“0”的话,那么请在小数点占位符前加上“0”这个数字占位符。小数点占位符的实际字符在格式输出时要看系统的数字格式而定。
(%) 百分比符号占位符。表达式乘以 100。而百分比字符 (%) 会插入到格式字符串中出现的位置上。
(,) 千分位符号占位符。在一些国别,是用句点来当千位符号。千位符号主要是把数值小数点左边超过四位数以上分出千位。如果格式中在数字占位符(0 或 #)周围包含有千分位符号,则指定的是标准的千分位符号使用法。两个邻近的千分位符号或一个千分位符号紧接在小数点左边(不管小数位是否指定),其意思为“将数值除以 1000,按需要四舍五入”。例如,可以用格式字符串 "##0,," 将 1 亿表示成 100。数值小于 1 百万的话表示成“0”,两个邻近的千分位符号除了紧接在小数点左边以外,在任何位置出现时均简单地视为指定了使用千分位符号。小数点占位符的真正字符在格式输出时,需视系统识别的数字格式而定。
(:) 时间分隔符。在一些国别,可能用其他符号来当时间分隔符。在格式化时间值时,时间分隔符可以用来分隔时、分和秒。时间分隔符的真正字符在格式输出时,取决于系统的设置。
(/) [url="javascript hhobj_6Click"]日期分隔符[/url]。在一些国别,可能用其他符号来当日期分隔符。在格式化日期数值时,日期分隔符可以用来分隔年、月、日。日期分隔符的真正字符在格式输出时,取决于系统设置。
(E- E+ e- e+) 科学格式。如果格式表达式在 E-、E+、e- 或 e+ 的右方含有至少一个数字占位符(0 或 #),那么数值将表示成科学格式,而 E 或 e 会被安置在数字和指数之间。E 或 e 右方数字占位符的个数取决于指数位数。使用 E- 或 e- 时,会用减号来表示负的乘幂。使用 E+ 或 e+ 时,会用减号来表示负的乘幂并用加号来表示正的乘幂。
- + $ ( ) 显示一个原义字符。如想显示那些列出的字符之外的字符时,可以用反斜杠 ( ) 字符作前缀或以双引号 (" ") 括起来。
([/B]) 将格式字符串中下一个字符显示出来。如想显示一作为原义字符并有特殊含义的字符,可将此字符置于反斜杠 () 之后。反斜杠本身并不会显示出来。而使用反斜杠 () 的效果和使用双引号是一样的。如想显示反斜杠字符,可使用两个反斜杠 (\)。
那些不能显示为原义字符的字符是日期格式字符和时间格式字符(a, c, d, h, m, n, p, q, s, t, w, y, / 和 :)、数值格式字符(#, 0, %, E, e, 逗点和句点)和字符串格式字符(@, &, <, > 和 !)。
("ABC") 显示双引号 (" ") 之内的字符串。如在代码中想在[B] format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 (") 的[url="javascript hhobj_7Click"]字符代码[/url])。

这是VB的科学计数法,不是自然对数。例如:
123467E-3
E 后面是 -3,表示指数,即10的 -3 次方
123467E-3 等同于:123467 10^(-3)
结果是:123467
1e+16 表示:1 10^(16),即:
10000000000000000


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12968522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存