freezl 发表于 2006-5-11 22:37:00

关于字符串的问题

请问怎么将字符串中的数字转换成数值用于计算(字符串中除了数字还有其它的字符),然后再转换成字符串 。

yuangw1234 发表于 2006-5-13 14:51:00

兄台,拿个例子来说明吧,有点不明白你的意思,不好帮忙

xinghesnak 发表于 2006-5-13 16:03:00

VAL函数不太好使。还是自己编程序吧。把每个字符提出来判断ASC码,这样就能提出数字了,数字转字符用cstr函数就行。。。

freezl 发表于 2006-5-18 22:38:00

<P>谢谢,用cstr函数将数值型转换成字符型我学会了 ,但是要将字符型转换成数值型该怎么做我还是不太明白,比如"asd678tt"这是一个字符串,怎么才能提取出678这个数值呢?</P>

xinghesnak 发表于 2006-5-19 08:39:00

<P>临时写了一个,你试试行不行</P>
<P>Sub main()<BR>MsgBox getNumber("adfa23adf42342")<BR>End Sub</P>
<P>Function getNumber(str As String) As Double<BR>Dim str1 As String, num As Integer, numStr As String<BR>For num = 1 To Len(str)<BR>&nbsp;&nbsp;&nbsp; If Asc(Mid(str, num, 1)) &gt;= 48 And Asc(Mid(str, num, 1)) &lt;= 57 Then numStr = numStr &amp; Mid(str, num, 1)<BR>Next<BR>getNumber = Val(numStr)<BR>End Function</P>

freezl 发表于 2006-5-19 18:29:00

<P>写的真好 ,谢谢 </P>

dynacy 发表于 2006-5-20 01:17:00

<P>其实这个问题5楼的朋友已经解答,主要是用mid()取字符后判别,根据机内ASC码做判定条件,还有就是5楼朋友也用到的val(),它将字符转化为数值型。</P>

xinghesnak 发表于 2006-5-20 08:20:00


<P>嗯,我也用了VAL函数,主要是我事先也知道numStr的值肯定是数字字符,强制把他转成数字是没有问题的,如果numStr包含数字之外的字符,那就有问题了</P>
<P>返回包含于字符串内的数字,字符串中是一个适当类型的数值。</P>
<P class=label><B>语法</B></P>
<P><B><FONT style="BACKGROUND-COLOR: #0a246a" color=#ffffff>Val</FONT>(</B>string<B>)</B></P>
<P>必要的<FONT face=Verdana> string <A href="<b target="_blank" >javascript</b>%20:hhobj_4.Click()" target=_blank>参数</A>可以是任何有效的<A href="<b target="_blank" >javascript</b>%20:hhobj_5.Click()" target=_blank>字符串表达式</A>.</FONT></P>
<P class=label><B>说明</B></P>
<P><FONT size=2><FONT color=#ff0099><STRONG><FONT style="BACKGROUND-COLOR: #0a246a">Val</FONT> </STRONG>函数,在它不能识别为数字的第一个字符上,停止读入字符串</FONT></FONT>。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 <CODE>&amp;O</CODE>(八进制)和 <CODE>&amp;H</CODE>(十六进制)。空白、制表符和换行符都从参数中被去掉</P>
页: [1]
查看完整版本: 关于字符串的问题