返回列表 发帖

[问题求助] 求助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 IfCOPY
为什么这个代码最后输出不是h*g*m*0.2或者h*g*0.9啊
小弟不大懂 跪求大佬解答

本帖最后由 jyswjjgdwtdtj 于 2023-3-17 18:53 编辑

回复 1# Pangda5268


    所以你要输出什么呢?
你要输出一个字符串还是一个数字?
如果你想输出一个数字 那么一点问题也没有
如果是字符串 那就
cr = Int(h)&"*"&Int(g)&"*"&crl
cmr = Int(h)&"*"&Int(g)&"*"&Int(m)&"*"&cmrlCOPY
你好

TOP

回复 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

TOP

小数不应该会有错误啊
我试了一下也没问题啊
输入数据:4,0.4,0.04
你好

TOP

你是不是输入什么分数或者用了中文符号啊?
你好

TOP

回复 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 IfCOPY

TOP

回复 6# Pangda5268


    嘶 我是怎么也报不了错啊
老实回答 你到底是怎么搞的?
要么你就在每个inputbox外面加个cdbl

h=cdbl(inputbox("xxx"))
你好

TOP

本帖最后由 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 IfCOPY
1

评分人数


QQ 20147578

TOP

返回列表