我想做个程序运行时间检测,例如regen耗费时间,但是总是提示错误
本帖最后由 ftmm 于 2019-8-12 18:49 编辑(defun c:pp()
(setq a (rtos (getvar "Cdate")2 6))
(command "regen")
(setq b (rtos (getvar "Cdate")2 6))
(setq c (- (atof b) (atof a)))
(princ c)
)
结果出来的要么是
如果瞬间结束,结果就是:0.00 0.00
如果26秒结束,出来的结果
是一个很大的数值2.59988e-005 2.59988e-005,怎么解?
这个结果其实是对的,大概是26秒左右,但是显示出来的为何会是2个数字?
比喻
a="20190813.005110"===》2019年08月13日00点51分10秒
b="20190813.005210"
c=b-a=0.000100=1.00000e-004是一分钟
cdate得到的结果已经帮你解析了,你这个直接减,在一分钟内得到的结果是正确的,但超过了就要换算了。 princ是个有返回值的函数
(princ expr)
除了打印表达式,还会返回expr的值,所以结果显示了两遍
程序最后加一个(princ)就好了 本帖最后由 ftmm 于 2019-8-13 16:59 编辑
Bao_lai 发表于 2019-8-13 00:56
比喻
a="20190813.005110"===》2019年08月13日00点51分10秒
b="20190813.005210"
难怪结果经常不正确,个人感觉lisp真的很难用,一些在其他语言里面的简单计算都能折腾半天...
非常感谢解惑。
现在问题是 如果1分50秒开始,2分5秒结束,结果竟然是这个,也要换算,真的很头疼。
20190813.0051500
20190813.0052050
0.0000550
最新补充,我自己已经想出来了,全部转化为秒...然后再用秒来减,就可以了..
satan421 发表于 2019-8-13 08:22
princ是个有返回值的函数
(princ expr)
除了打印表达式,还会返回expr的值,所以结果显示了两遍
非常感谢,最后加个(princ)就可以了...
页:
[1]