标题: [问题求助] 求助vbs脚本计算数字和比较大小问题 [打印本页]
作者: Pangda5268 时间: 2023-3-17 18:24 标题: 求助vbs脚本计算数字和比较大小问题
- Dim h,g,m,hmsg,gmsg,mmsg
- hmsg="请输入CPU核心数:"
- h=InputBox(hmsg)
- MsgBox h
- h=CDbl(h)
- gmsg="请输入CPU频率:"
- g=InputBox(gmsg)
- MsgBox g
- g=CDbl(g)
- mmsg="请输入内存大小(不建议频率低于2133MHZ):"
- m=InputBox(mmsg)
- MsgBox m
- m=CDbl(m)
- Dim cr,cmr,crl,cmrl
- crl = 0.9
- cmrl = 0.2
- cr = Int(h)*Int(g)*crl
- cmr = Int(h)*Int(g)*Int(m)*cmrl
- MsgBox cmr
- MsgBox cr
- If cr > cmr Then
- MsgBox cmr
- ElseIf cmr > cr Then
- MsgBox cr
- ElseIf cmr = cr Then
- MsgBox cr
- End If
复制代码
为什么这个代码最后输出不是h*g*m*0.2或者h*g*0.9啊
小弟不大懂 跪求大佬解答
作者: jyswjjgdwtdtj 时间: 2023-3-17 18:48
本帖最后由 jyswjjgdwtdtj 于 2023-3-17 18:53 编辑
回复 1# Pangda5268
所以你要输出什么呢?
你要输出一个字符串还是一个数字?
如果你想输出一个数字 那么一点问题也没有
如果是字符串 那就- cr = Int(h)&"*"&Int(g)&"*"&crl
- cmr = Int(h)&"*"&Int(g)&"*"&Int(m)&"*"&cmrl
复制代码
作者: Pangda5268 时间: 2023-3-17 19:19
回复 2# jyswjjgdwtdtj
大佬这是我改的 我想输出的是数字 但是下方这个代码为啥输入小数就会出错啊 我想最后对比cmr和cr的大小 输出更大的那个的数值
Dim h,g,m,hmsg,gmsg,mmsg
hmsg="请输入CPU核心数:"
h=InputBox(hmsg)
gmsg="请输入CPU频率:"
g=InputBox(gmsg)
mmsg="请输入内存大小(不建议频率低于2133MHZ):"
m=InputBox(mmsg)
cr=h*g*0.9
cmr=h*g*m*0.2
MsgBox(cmr)
MsgBox(cr)
If cr > cmr Then
MsgBox(cmr)
ElseIf cmr > cr Then
MsgBox(cr)
ElseIf cmr = cr Then
MsgBox(cr)
End If
作者: jyswjjgdwtdtj 时间: 2023-3-17 19:34
小数不应该会有错误啊
我试了一下也没问题啊
输入数据:4,0.4,0.04
作者: jyswjjgdwtdtj 时间: 2023-3-17 19:34
你是不是输入什么分数或者用了中文符号啊?
作者: Pangda5268 时间: 2023-3-18 14:41
回复 5# jyswjjgdwtdtj
大佬这是我的代码
我输入的数据是6 5.3 32
vbs文件用的是ansi
它显示:
行:21
字符:1
错误:类型不匹配:"[string:"5.3"]'
代码:800A000D
源:Microsoft VBScript 运行时错误- Dim h,g,m,hmsg,gmsg,mmsg
-
- hmsg="CPU core:"
-
- h=InputBox(hmsg)
-
- If h>8 Then
-
- h=8
-
- End If
-
- gmsg="CPU frequency:"
-
- g=InputBox(gmsg)
-
- mmsg="RAM:"
-
- m=InputBox(mmsg)
-
- c2=h*g
-
- cm2=h*g*m
-
- cr=c2*1
-
- cmr=cm2*3/10
-
- cmrz=Round(cmr, 0)
-
- crz=Round(cr, 0)
-
- If crz > cmrz Then
-
- MsgBox(cmrz)
-
- ElseIf cmrz > crz Then
-
- MsgBox(crz)
-
- ElseIf cmrz = crz Then
-
- MsgBox(crz)
-
- End If
复制代码
作者: jyswjjgdwtdtj 时间: 2023-3-18 15:16
回复 6# Pangda5268
嘶 我是怎么也报不了错啊
老实回答 你到底是怎么搞的?
要么你就在每个inputbox外面加个cdbl
如
h=cdbl(inputbox("xxx"))
作者: czjt1234 时间: 2023-3-18 16:34
本帖最后由 czjt1234 于 2023-3-18 16:39 编辑
回复 6# Pangda5268
你的代码我在win7x64上测试没问题,也是输入的你指定的数值
根据demon的最佳推荐http://demon.tw/programming/vbs-add-two-number.html
修改如下,你再试下
- Dim h, g, m, hmsg, gmsg, mmsg
-
- hmsg = "CPU core:"
- h = 0 + InputBox(hmsg)
- If h > 8 Then
- h = 8
- End If
- gmsg = "CPU frequency:"
- g = 0 + InputBox(gmsg)
- mmsg = "RAM:"
- m = 0 + InputBox(mmsg)
- c2 = h * g
- cm2 = h * g * m
- cr = c2 * 1
- cmr = cm2 * 3 / 10
- cmrz = Round(cmr, 0)
- crz = Round(cr, 0)
- If crz > cmrz Then
- MsgBox cmrz
- ElseIf cmrz > crz Then
- MsgBox crz
- ElseIf cmrz = crz Then
- MsgBox crz
- End If
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |