VB中如何将字符串转换为数值?

 2024-03-16 05:02:55  阅读 0

'您可以使用下面提供给您的功能来做到这一点!

'首先定义两个结构体和Plus,并将这两个定义放在代码段的开头

类型

SA

价值为

末端类型

加号型

SA

价值为

末端类型

'下面是实现这个功能的函数的定义,比较长。

(ByVal As ) As

Dim Pa() As 、 As 、 Ps() As 加、 As

调暗 str0 As

'用括号分解表达式:Begin-----/*

暗淡 As 、 As 、 i As 、 j As 、 k As 、 str1 As 、 str2 As 、 As

暗淡如,如

=Len()

对于 i = 1 至

如果 Mid(, i, 1) = "(" 则 = + 1

下一个

=

ReDim Pa(( / 10 + 1) * 10)

对于 i = 1 至

如果 < 1 则退出

对于 j = 1 至

如果 Mid(, j, 1) = ")" 那么

str1 = 中(, 1, j - 1)

退出对于

万一

下一个

= 长度(str1)

对于 k = 1 至

如果 Mid(str1, + 1 - k, 1) = "(" 那么

Pa(i).s = Mid(str1, + 2 - k)

退出对于

万一

下一个

vb中数值和字符串的转换函数_vb将字符串转换为数字的函数_vba字符串转数值

= Mid(, 1, - k) & Chr(128) & CStr(i) & Mid(, j + 1)

=Len()

下一个

Pa(0).s =

'*/ - - -结尾

'进一步按加减号分解:Begin-----/*

暗淡如,如

对于 i = 0 至

k = 0

对于 j = 1 至 Len(Pa(i).s)

str1 = Mid(Pa(i).s, j, 1)

如果 str1 = "+" 或 str1 = "-" 则 k = k + 1

下一个

如果 k > 则 = k

下一个

重新调暗 Ps(, )

对于 i = 0 至

= Pa(i).s: n = 0: str2 = ""

如果 Len() = 0 则退出

对于 j = 1 到 Len()

str1 = 中(, j, 1)

如果 str1 = "+" 或 str1 = "-" 那么

Ps(i, n).s = str2 & Mid(, 1, j - 1)

n = n + 1

str2 = IIf(str1 = "-", str1, "")

= 中(, j + 1)

退出对于

万一

如果 j = Len() 那么

Ps(i, n).s = str2 & : j = 0

退出对于

万一

下一个

循环直到 j = 0

下一个

'*/ - - -结尾

'计算多个简单表达式最终分数值的总和,即表达式的值

暗淡总 As , 值 As

对于 i = 1 至 + 1

如果 i = + 1 则 i = 0

总计 = 0

对于 j = 0 至

= Ps(i, j).s:值 = 0

暗淡最后的 As, As

= Len(): 最后 = 0: = ""

对于 k = 1 至

str0 = 中(, k, 1)

如果 InStr("*/^", str0) > 0 或 k = 那么

如果 k = 则 k = k + 1

str1 = Mid(,lasti + 1,k - 1 -lasti)

昏暗符号 As,As

如果 Mid(str1, 1, 1) = "-" 那么

符号=-1

str1 = 中(str1, 2)

别的

符号=1

万一

n = InStr(1, "/sin" & Chr(128) & "/cos" & Chr(128) & "/tan" & Chr(128) & "/abs" & Chr(128) & "/atn" & Chr(128) & "/exp" & Chr(128) & "/int" & Chr(128) & "/fix" & Chr(128) & "/sgn" & Chr(128) & "/sqr" & Chr(128) & "/", "/" & Mid(str1, 1, 4) & "/")

如果 n > 0 则

= ((n + 4) / 5, Sin(Pa(Val(Mid(str1, 5))).value), Cos(Pa(Val(Mid(str1, 5))).value), Tan(Pa( Val(Mid(str1, 5))).value)、Abs(Pa(Val(Mid(str1, 5))).value)、Atn(Pa(Val(Mid(str1, 5)))).value) , Exp(Pa(Val(Mid(str1, 5))).value), Int(Pa(Val(Mid(str1, 5))).value), Fix(Pa(Val(Mid(str1, 5))) ) .value), Sgn(Pa(Val(Mid(str1, 5))).value), Sqr(Pa(Val(Mid(str1, 5))).value))

别的

n = InStr(1, "/lg" & Chr(128) & "/ln" & Chr(128) & "/", Mid(str1, 1, 3))

如果 n > 0 则

= ((n + 3) / 4, Log(Pa(Val(Mid(str1, 4))).value) / Log(10), Log(Pa(Val(Mid(str1, 4)))).value ) )

别的

如果 Mid(str1, 1, 1) = Chr(128) 那么

= Pa(Val(Mid(str1, 2))).value

右(str1,1)=“!” 然后

如果 Val(str1) = 0 那么

= 1

别的

= 1

对于 n = 1 至 Val(str1)

vb中数值和字符串的转换函数_vb将字符串转换为数字的函数_vba字符串转数值

= *n

下一个

万一

别的

= 瓦尔(str1)

万一

万一

万一

= * 符号

案件

案件 ””

值=

案件 ”*”

值=值*

案件 ”/”

值=值/

案例“^”

值=值^

结尾

拉斯蒂 = k: = str0

万一

下一个

Ps(i, j).value = 值

总计 = 总计 + Ps(i, j).value

下一个

Pa(i).值 = 总计

如果 i = 0 则退出

下一个

= Pa(0).值

结尾

'好的,函数的定义到此结束

'使用示例:

'A=“5+5+5”

'打印(A)

'其他说明:该函数支持sin、cos、tan等多种数学函数,如:

'打印(“罪(1)”)

'注意后面的括号

'该函数支持运算符+-*/^!,以及括号,^是幂,其优先级与*/相同。 这是使用该功能时需要注意的地方; ! 是阶乘

‘你亲自尝试一下就知道是怎么回事了!

标签: 字符串函数 dim chr

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码