用 OnEvent 可以接受 字符信息 数字转 变成0了

Global Numeric ZXZHI; Global Map<String,String> map_daxiao; Events OnBar(ArrayRef<Integer> indexes) { if (H < H[2] And H[1] < H[2]) H1 = H[2]; else H1 = 0; if (L > L[2] And L[1] > L[2]) L1 = L[2]; else L1 = 0; if(H1 > 0) H2 = H1; If(L1 > 0) L2 = L1; If(Close > H2) K1= -3; ELSE IF (Close < L2) K1=1; Else K1 = 0; if(K1 <> 0) k2 = k1; TMP1=K2; shangc = CrossUnder(TMP1, 0); //死叉 xiac = CrossOver(TMP1, 0); //金叉 LSHANGC=NthCon(shangc[1],1); LXIAC= NthCon(xiac[1],1); ZXZHI = Min(LSHANGC,LXIAC); map_daxiao["最近距离"] = "ZXZHI"; PublishEvent("比大小",map_daxiao,"所有订阅者"); Print("ZXZHI="+Text(ZXZHI)); 发送端把 ZXZHI 变输出是有值的 下面代码是接受端 Global Numeric TIMEXX; Global Numeric tttt; Events OnInit() { CreateTimer(1200); SubscribeEvent("比大小"); } OnEvent(StringRef evtName, MapRef<String, String> evtValue) { if(evtName == "比大小") { TIMEXX = Value(evtValue["最近距离"]); print(evtName + " " + TextMap(evtValue)); Print("TIMEXX="+Text(TIMEXX)); } } 在接受 其实信息输出都正确的 TIMEXX 输出是0的 是什么原因 老师帮忙看一下

map_daxiao["最近距离"] = "ZXZHI"; 首先你赋值时,赋了一个字符串,意义不明TIMEXX = Value(evtValue["最近距离"]);接受端你企图把,字符串 "ZXZHI" ,变成1个数字。 显然不可能。map_daxiao["最近距离"] = text(ZXZHI); 更像那么回事