我需要在VBScript中编写一些代码,并在文本文件中有一个版本号字符串,我需要与之进行比较。如果我将此代码编写为测试:
option explicit
Dim VersionString
VersionString = "6.2.1"
Dim Version
Version = CDbl (VersionString)
Version = Version * 100
我在CDbl行上收到错误:
Microsoft VBScript runtime error: Type mismatch: 'CDbl'
我应该如何阅读和比较这个字符串值?
答案 0 :(得分:10)
“6.2.1”不是Double格式化为String。所以CDbl()无法转换它。您的选择是:
答案 1 :(得分:1)
转换为double无效,因为字符串中有两个小数点。要转换字符串,您必须删除其中一个或两个。
为此,您可以使用“替换”功能。替换的语法是
Replace(string, find, replacewith [, start [, count [, compare]]])
其中string
是要搜索的字符串,find
是要查找的子字符串,replacewith
是要替换find
的子字符串,start
是指定要开始搜索的索引的可选参数,count
是一个可选参数,指定要进行的替换次数,compare
是一个可选参数,可以是0(vbBinaryCompare)来执行二进制比较,或者1(vbTextCompare)执行文本比较
' Remove all decimals
Version = CDbl(Replace(VersionString, ".", "")
' Remove only the first decimal
Version = CDbl(Replace(VersionString, ".", "", 1, 1)
' Remove only the second decimal
Version = CDbl(Replace(VersionString, ".", "", 3, 1)