明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1664|回复: 4

[求助]在COMMAND下使用CAL与LISP下使用CAL,为何计算结果会不同呢?

[复制链接]
发表于 2012-12-28 17:17:23 | 显示全部楼层 |阅读模式
指令: CAL
>> 表示式: 300*300
90000

指令: (CAL "300*300")
24464

指令: CAL >> 表示式: 500*300
150000

指令: (CAL "500*300")
18928

指令: CAL
>> 表示式: 100*100000
10000000

指令: (CAL "100*100000")
-27008

什么原因呢?
是不是CAL指令不适用于LISP使用吗?
求高手解答,谢谢!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-12-28 17:35:02 | 显示全部楼层
cal是cad自带的简易计算程序,内核还是Lisp或C(ADS)等接口语言,所以,使用时需要遵循常规计算的规则,即整数计算得整数,实数计算得实数。
用cal作为函数时,把数值转变为实数,计算结果就正确了。
按说即使作为整数,计算也应该是正确的,但cal开了一定的位数来存储计算结果,这个限制就是整数32768,如果整数结果不超过32768,显示就是正确的,否则就错误。

点评

大大 高手  发表于 2018-12-2 17:36
 楼主| 发表于 2012-12-28 18:28:33 | 显示全部楼层
感谢 ll_j 回覆!

指令: (COMMAND "CAL" "" "300*300")
90000
这样执行O.K.
请问如何取得90000之数值
发表于 2012-12-28 21:15:55 | 显示全部楼层
(command "cal" "300.*300")
结果: 90000.0

2F正解,其实-32768~32767区间有效
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-2 17:58 , Processed in 0.148600 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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