如何实现字符串内数据相加或相乘
要求使用者任意输入一个字符串,形如 -12x6在程序中如何使这个乘法得出结果。
如果是固定的位数我还有办法,现在问题是再出来 -150x20 怎么办? (defun tt (str)
(if (not cal)(arxload "geomcal.arx"))
(setq str (vl-string-translate "x" "*" str))
(abs(cal str))
)_$ (tt "-120x6")
720
_$ (tt "-15x3")
45 ll_j 发表于 2004-6-13 22:22
看看我的Ce.lsp是否可用。
ll-j 大师您好!您的这个计算器太好了,可以解决好多的计算问题,非常感谢您分享这么好的插件!试用了下,发现选择项如果可以带记忆功能就更完美了,好多的计算都是相同的,选择项也相同,目前插件是每次都要输入选择项,带上上次的记忆功能,就不用每次去输入。如果您有时间更新下,就完美到极致了。:handshake 同问,不能运行呢 x怎么可以呢?乘号怎么也得用“*”吧。。。
函数CAL CADghost发表于2004-6-11 8:10:00static/image/common/back.gif回复:(CADghost)如何实现字符串内数据相加或相乘要求使用者任意输入一个字符串,形如 -12x6
在程序中如何使这个乘法得出结果。
如果是固定的位数我还有办法,现在问题是再出来 -15
只要定下规则了都可以求,减号是第一个的结果变负。 嗯,怎么说呢,
其实这是一个零件的规格,前面的“-”,意思是板材。
“x”前的150是板宽,后面的就是板厚,我就是想把他们两个数提出来乘一下。 (defun DivStr(str / i ch num num2)<BR> (setq i 1 num "")<BR> (repeat (strlen str)<BR> (setq ch (substr str i 1))<BR> (if (or (= ch "-") (= ch "x")) <BR> (progn<BR> (setq num2 num)<BR> (setq num "")<BR> )<BR> (setq num (strcat num ch)) <BR> ) <BR> (setq i (1+ i))<BR> )<BR> (* (atof num) (atof num2))<BR>) 又学了一招,谢了! 看看我的Ce.lsp是否可用。
在提示输入第二组文字时回车输入1。
帅呆了,谢谢! 加载
(defun DivStr(str / i ch num num2)
(setq i 1 num "")
(repeat (strlen str)
(setq ch (substr str i 1))
(if (or (= ch "-") (= ch "x"))
(progn
(setq num2 num)
(setq num "")
)
(setq num (strcat num ch))
)
(setq i (1+ i))
)
(* (atof num) (atof num2))
)
程序后不能运行?
页:
[1]
2