有没有将字母转化为数字的技术啊?

0551 2003-10-09 10:41:06
有没有将字母转化为数字的技术啊?
...全文
204 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwm1977 2003-10-09
  • 打赏
  • 举报
回复
"字母转化为数字"的规则是什么?是不是字母对应的键值?
射天狼 2003-10-09
  • 打赏
  • 举报
回复
类型转换函数

每个函数都可以强制将一个表达式转换成某种特定数据类型。

语法

CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CVar(expression)
CStr(expression)
必要的 expression 参数可以是任何字符串表达式或数值表达式。

返回类型

函数名称决定返回类型,如下所示:

函数 返回类型 expression 参数范围
CBool Boolean 任何有效的字符串或数值表达式。
CByte Byte 0 至 255。
CCur Currency -922,337,203,685,477.5808 至922,337,203,685,477.5807。
CDate Date 任何有效的日期表达式。
CDbl Double 负数从 -1.79769313486232E308 至 -4.94065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。
CDec Decimal 零变比数值,即无小数位数值,为
+/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为
+/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。
CInt Integer -32,768 至 32,767,小数部分四舍五入。
CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。
CSng Single 负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。
CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。
CStr String CStr 返回值依据 expression 参数而定。
说明

如果传递给函数的 expression 超过转换目标数据类型的范围,将发生错误。

通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算发生的情况下,使用 CCur 来强制执行货币运算。

应该使用数据类型转换函数来代替 Val,以使国际版的数据转换可以从一种数据类型转换为另一种。例如,当使用 Ccur 时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。

当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和
Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。

使用 IsDate 函数,可判断 date 是否可以被转换为日期或时间。Cdate 可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。

CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。

CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date
,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。

注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
shaidanR 2003-10-09
  • 打赏
  • 举报
回复
可以把字母转换成asc码
判断字母的大小写
在减去相应大小写字母a or A 的asc 码
windysound 2003-10-09
  • 打赏
  • 举报
回复
够全的,up
MSSQL 2003-10-09
  • 打赏
  • 举报
回复
你说的是什么意思了。
是不是asc()函数了。
xuwuyu 2003-10-09
  • 打赏
  • 举报
回复
什么叫把字母转换成数字啊,将明白点啊
ssht968 2003-10-09
  • 打赏
  • 举报
回复
恩挺好的。
Mi_Bo 2003-10-09
  • 打赏
  • 举报
回复
问题不是很明确啊
online 2003-10-09
  • 打赏
  • 举报
回复
字符串--->>>整数
Public Function Str2Int(s As String) As Integer
数字-->字符串
Function NumberToString(ByVal number As Double, ByVal masculino As Boolean) As String
0551 2003-10-09
  • 打赏
  • 举报
回复
请问online(龙卷风(白学了,重新充电中)) 老大
你编的这是什么东西啊?

怎么测试结果不对啊!
online 2003-10-09
  • 打赏
  • 举报
回复
Function NumberToString(ByVal number As Double, ByVal masculino As Boolean) As String

' By Francisco Castillo - september 2000.

' Devuelve la representación textual del valor del nú-

' mero ENTERO que se pasa como argumento, (100 =

' "Cien"). El parámetro "masculino" será True cuando deban

' ponerse terminaciones masculinas,(210 = doscientOs

' diez), y False en caso contrario, (320 = trescientAs

' veinte). El valor máximo del número es de

' 999.999.999

If number = 0 Then

NumberToString = "Cero"

Exit Function

End If

If number < 0 Then ' Hacerlo positivo,

number = number * -1

End If

X = CStr(Fix(number)) ' ...entero,

Do While Len(X) < 9 ' ...y de 9 cifras.

X = "0" & X

Loop

a = ""

' Grupos de 3 cifras, de atrás hacia adelante:

For n = 7 To 1 Step -3

' ?El grupo actual es cero?:

If CInt(Mid(X, n, 3)) <> 0 Then

' No.

' Tratar casos especiales decena:

Select Case CInt(Mid(X, n + 1, 2))

Case 10

a = "diez " & a

Case 11

a = "once " & a

Case 11

a = "once " & a

Case 12

a = "doce " & a

Case 13

a = "trece " & a

Case 14

a = "catorce " & a

Case 15

a = "quince " & a

Case 16

a = "dieciseis " & a

Case 17

a = "diecisiete " & a

Case 18

a = "dieciocho " & a

Case 19

a = "diecinueve " & a

Case 20

a = "veinte " & a

Case 21

If n > 1 Then

a = "veintiun$ " & a

Else

a = "veintiun " & a

End If

Case 22

a = "veintidos " & a

Case 23

a = "veintitrés " & a

Case 24

a = "veinticuatro " & a

Case 25

a = "veinticinco " & a

Case 26

a = "veintiseis " & a

Case 27

a = "veintisiete " & a

Case 28

a = "veintiocho " & a

Case 29

a = "veintinueve " & a

Case Else

' Restantes casos; traducir unidad:

Select Case CInt(Mid(X, n + 2, 1))

Case 0

Case 1

Select Case n

Case 7

a = "y un$ " & a

Case 4

If masculino Then

a = "y un " & a

Else

a = "y una " & a

End If

Case 1

a = "y un " & a

End Select

Case 2

a = "y dos " & a

Case 3

a = "y tres " & a

Case 4

a = "y cuatro " & a

Case 5

a = "y cinco " & a

Case 6

a = "y seis " & a

Case 7

a = "y siete " & a

Case 8

a = "y ocho " & a

Case 9

a = "y nueve " & a

End Select

' Traducir decena:

Select Case CInt(Mid(X, n + 1, 1))

Case 0

Case 3

a = "treinta " & a

Case 4

a = "cuarenta " & a

Case 5

a = "cincuenta " & a

Case 6

a = "sesenta " & a

Case 7

a = "setenta " & a

Case 8

a = "ochenta " & a

Case 9

a = "noventa " & a

End Select

End Select

' Prever caso "ciento y tres":

If Left(a, 1) = "y" Then

a = Right(a, Len(a) - 2)

End If

' Traducir centena:

Select Case CInt(Mid(X, n, 1))

Case 0

Case 1

If CInt(Mid(X, n + 1, 2)) = 0 Then

a = "cien " & a

Else

a = "ciento " & a

End If

Case 2

a = "doscient$s " & a

Case 3

a = "trescient$s " & a

Case 4

a = "cuatrocient$s " & a

Case 5

a = "quinient$s " & a

Case 6

a = "seiscient$s " & a

Case 7

a = "setecient$s " & a

Case 8

a = "ochocient$s " & a

Case 9

a = "novecient$s " & a


End Select

End If

' Poner terminación del grupo anterior:

' Puede haber quedado "y tres":

If Left(a, 1) = "y" Then

a = Right(a, Len(a) - 2)

End If

' Millones:

If n = 4 Then

If CInt(Left(X, 3)) = 1 Then

a = "millón " & a

Else

If CInt(Left(X, 3)) <> 0 Then

a = "millones " & a

End If

End If

Else

If n = 7 Then

' Miles:

If CInt(Mid(X, 4, 3)) = 1 Then

a = "mil " & a

Else

If CInt(Mid(X, 4, 3)) <> 0 Then

a = "mil " & a

End If

End If

End If

End If

' Traducir género, "$" en el texto. Para el grupo de los

' millones, se traduce siempre por masculino:

If n = 1 Then

masculino = True

End If

Posic = 1

Do While Posic <> 0

Posic = InStr(a, "$")

If Posic <> 0 Then

ante = Left(a, Posic - 1)

post = Right(a, Len(a) - Posic)

If masculino Then

a = ante & "o" & post

Else

a = ante & "a" & post

End If

End If

Loop

Next n

' Caso especial: puede haber quedado "unx mil "

If Left(a, 7) = "un mil " Then

a = Right(a, Len(a) - 3)

Else

If Left(a, 8) = "una mil " Then

a = Right(a, Len(a) - 4)

End If

End If

' Inicial en mayúsculas:

NumberToString = Trim(UCase(Left(a, 1)) & Right(a, Len(a) - 1))

End Function
online 2003-10-09
  • 打赏
  • 举报
回复
Public Function Str2Int(s As String) As Integer

Dim temp, ch As String

Dim i, mult As Integer


temp = s

i = 0

mult = 1


While Len(temp) <> 0

ch = Right(temp, 1)

i = i + mult * (Asc(ch) - Asc("0"))

mult = mult * 10

temp = Left(temp, Len(temp) - 1)

Wend


Str2Int = i

End Function
kmzs 2003-10-09
  • 打赏
  • 举报
回复
不就是asc()嘛chr()的反函数
海牛 2003-10-09
  • 打赏
  • 举报
回复
搂住举个例子三!不懂你的意思!
li_ping 2003-10-09
  • 打赏
  • 举报
回复
兄弟们都想到一块去了。帮忙顶一下。
northwolves 2003-10-09
  • 打赏
  • 举报
回复
asc()

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧