明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 160|回复: 4

[讨论] 我想做个程序运行时间检测,例如regen耗费时间,但是总是提示错误

[复制链接]
发表于 2019-8-12 16:30 | 显示全部楼层 |阅读模式
本帖最后由 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个数字?


发表于 2019-8-13 00:56 | 显示全部楼层
比喻
a="20190813.005110"===》2019年08月13日00点51分10秒
b="20190813.005210"
c=b-a=0.000100=1.00000e-004是一分钟
cdate得到的结果已经帮你解析了,你这个直接减,在一分钟内得到的结果是正确的,但超过了就要换算了。
发表于 2019-8-13 08:22 | 显示全部楼层
princ是个有返回值的函数
(princ expr)
除了打印表达式,还会返回expr的值,所以结果显示了两遍
程序最后加一个(princ)就好了
 楼主| 发表于 2019-8-13 09:08 | 显示全部楼层
本帖最后由 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

最新补充,我自己已经想出来了,全部转化为秒...然后再用秒来减,就可以了..
 楼主| 发表于 2019-8-13 09:09 | 显示全部楼层
satan421 发表于 2019-8-13 08:22
princ是个有返回值的函数
(princ expr)
除了打印表达式,还会返回expr的值,所以结果显示了两遍

非常感谢,最后加个(princ)就可以了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号  
©2000-2017 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2019-8-19 21:58 , Processed in 0.232710 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表