Proctor 发表于 2022-7-6 22:58:42

小数变成逗号?vb

您好:我创建了一个工作完美的程序;然而,我最近把它放在一台机器上,它不工作了,所以我调试了它,发现当它得到样条曲线的长度时,出于某种原因,在原来是小数的地方放了一个逗号,例如5.123变为5123。这很奇怪。
 
下面是正在运行的代码:
 

If TypeOf ssobject Is AcadSpline Then
         Set MySpline = ssobject
         MyLineType = MySpline.Linetype
         'THIS SCRIPT SENDS IN PARAMS and calls A LISP FUNCTION TO CALCULATE THE LENGTH OF A SPLINE
         'WASNT ABLE TO FIND LENGTH W/ VBA SO HAD TO MAKE CALL LISP FUNCTION vlax-curve-getdistatparam to get it.
         With ThisDrawing
               ThisDrawing.SetVariable "USERR1", sVar
               'load lisp
               .SendCommand "(vl-load-com)" & vbCr
               'call lisp function and pass in params. return length of spline
               strCom = "(setvar " & Chr(34) & "USERR1" & Chr(34) & Chr(32) & "(vlax-curve-getdistatparam (vlax-ename->vla-object (handent " & Chr(34) & ssobject.Handle & Chr(34) & ")) (vlax-curve-getendparam (vlax-ename->vla-object (handent " & Chr(34) & ssobject.Handle & Chr(34) & ")))))" & vbCr
               .SendCommand strCom
                MyLineLength = .GetVariable("USERR1")
         End With
End if

 
红色的线是当它得到样条曲线的长度时,我看到的是逗号而不是小数点。
 
谢谢你的帮助,
监考人员

MSasu 发表于 2022-7-6 23:14:54

请检查控制面板-->区域和语言选项-->自定义。。。对于该车站;十进位分隔符符号很可能设置为逗号。
 
当做

Proctor 发表于 2022-7-6 23:35:33

msasu。。。这就解决了!!!非常感谢你让我知道这个设置!!!
 
监考人员

MSasu 发表于 2022-7-6 23:53:41

不客气!很高兴帮助你。
 
但我的建议是在代码中为此类情况添加一个保护(即,将字符串转换为double的自定义函数)。
 
当做

Proctor 发表于 2022-7-7 00:00:51

这是一个好建议。。。。我会的。
 
再次感谢,
监考人员
页: [1]
查看完整版本: 小数变成逗号?vb