本帖最后由 1291500406 于 2019-10-11 19:31 编辑
cal 的bug: 整数必须介于 -32768 和 32767 之间,否则会计算错误的结果
VbScript_eval 可以弥补, cal的不足
VbScript表达式计算代码是如下
a = Eval(35*2+1)
b = Eval(25+1.5*3)
c = Eval(25/5+35-3)
msgbox "a="&a & " b="&b& " c="&c
(defun VbScript_eval(expr)(or *SCR-ScriptControl(setq *SCR-ScriptControl
(vlax-create-object "Aec32BitAppServer.AecScriptControl.1"))
(setq *SCR-ScriptControl (vlax-create-object "ScriptControl")))
(vlax-put *SCR-ScriptControl 'language "VBScript")
(vlax-invoke *SCR-ScriptControl 'eval expr))
测试:
(setq str1a(VbScript_eval "35*2+1"))
71
(setq str2a(VbScript_eval "25+1.5*3"))
29.5
(setq str3a(VbScript_eval "25/5+35-3"))
37.0
(setq str1a(VbScript_eval "35000000*2+1"))
70000001
(setq str1a(cal "35*2+1")) 71
(setq str2a(cal "25+1.5*3")) 29.5
(setq str3a(cal "25/5+35-3")) 37.0 (setq str1 (cal "35000000*2+1"))
7553
|