注册 登录
编程论坛 VB6论坛

新手求助vb 中进行算术运算显示“实时错误 13 类型不匹配 ”帮忙看看错在哪里了

majorwang 发布于 2013-03-01 09:58, 2119 次点击
刚刚接触到VB几天   
代码如下:      
  Dim Value As Single   
     Dim ret As Long   
    ret = GetVAValue("流量A", Value)   
    Text3.Text = Value     
   seddata(5) = Hex(Value \ 65536)   
    seddata(6) = Hex(Value \ 256)   
   seddata(7) = Hex(Value Mod 256)    错误时显示seddata(6) = Hex(Value \ 256)这一行为黄色,
设计过程是这样的:例如 value的数值为250000 转换为16进制后为3D090
用value除以65536                     则seddata(5)为16进制的03
用value除以65536后取余 在除以256     seddata(6)为16进制的D0  
用value除以65536后除以256取余        seddata(7)为16进制的90
现在value的数值在当前为3200 ,为什么会显示错误,数组定义为 Dim seddata(0 To 30) As Byte   不知道错在哪里了,希望高手来解释一下啊。
6 回复
#2
majorwang2013-03-01 10:16
各位兄弟们  不要只是路过啊   一定要留下点东西啊
#3
wp2319572013-03-01 10:19
"流量A", seddata 都是啥东东啊
#4
majorwang2013-03-01 10:25
    ret = GetVAValue("流量A", Value)     这一句不用管 因为是直接引用的外部数据  
#5
Artless2013-03-01 12:00
Hex去掉
#6
lowxiong2013-03-01 12:23
除seddata(5)正确外,其他错误。
seddata(6)=(Value mod 65536)\256
seddata(7)=Value mod 256
这样才会得到正确值。hex函数返回的是字符串,正好你seddata(5)得数为03,系统自动转了,第二个数为3D0,系统就无法识别了,所以出错。版主说去掉hex是正确的。

[ 本帖最后由 lowxiong 于 2013-3-1 12:25 编辑 ]
#7
majorwang2013-03-01 15:23
解决了  确实是把hex去掉就对了   感谢版主 感谢大家的支持。
1