明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1361|回复: 4

我编了个小程序,有问题,我把它贴上来,各位帮忙把把脉~~~~~~~~~~~~

[复制链接]
发表于 2005-8-4 18:58:00 | 显示全部楼层 |阅读模式

(defun c: zt (/)

(setq D0 (getreal "\n输入值1:"))

(setq ES0 (getreal "\n输入值2:"))

(setq EI0 (getreal "\n输入值3:"))

(setq IT0 (- ES0 EI0))

(setq D D0 ES ES0 EI EI0 IT IT0))

(if

(<= D 3)

(cond

((< IT 0.01)

(setq T0  0.001 Z0  0.001))

((and (>= IT  0.01)(< IT 0.014))

(setq T0 0.0012 Z0 0.0016))

)

)

(SETQ Dz (+ D ES))

(setq Dt (+ D EI )(+ (/  T0  2) Z0)))

(princ DZ)(princ " 0/")(princ (- T0))(princ "  ")

(princ Dt)(princ " 0/")(princ (- T0))

(princ)

)

这是一个计算用的小程序,由于有很多的数据输入,所以只略举一点数据 在上面了。下面是例子:

值1:2.5

值2:+0.06

值3:+0.05

返回的正确结果因该是 2.56 0/-0.0012    2.5515 0/-0.0012

但是计算结果是  2.56 0/-0.001    2.5515 0/-0.001

我试着赋值后对每句求返回值,觉得是(< IT 0.01)这句有问题,输入以上值后,IT的返回值是0.01,那么这句(< IT 0.01)的返回值因该是“nil”,但是这是返回的是“T” ,所以使后面在选择程序内的数据时出了问题,导致结果错误。

这是我的理解,不知道对不对,拜谢各位帮忙指点一下,再给出点解决的意见,方法最好了,拜谢先!!!!谢谢了~~~~~~~~

发表于 2005-8-5 07:48:00 | 显示全部楼层
(setq Dt (+ D EI)(+ (/ T0 2) Z0)  ) 这一行代码有问题
发表于 2005-8-5 09:44:00 | 显示全部楼层
(rtos it 2 20)--->"0.009999999999999996"
这是二进制小数的计数问题。所以浮点数的判断要给出误差范围。改过的程序:
  1. (defun c:zt ()
  2. (setq D0 (getreal "\n输入值1 : "))
  3. (setq ES0 (getreal "\n输入值2 : "))
  4. (setq EI0 (getreal "\n输入值3 : "))
  5. (setq IT0 (- ES0 EI0))
  6. (setq D D0 ES ES0 EI EI0 IT IT0)
  7. (if (<= D 3)
  8.   (cond
  9.    ((OR (equal IT 0.01 1E-6) (and (> IT 0.01)(< IT 0.014)))
  10.     (setq T0 0.0012 Z0 0.0016))
  11.    (T (setq T0 0.001 Z0 0.001))
  12.   )
  13. )
  14. (SETQ Dz (+ D ES))
  15. (setq Dt (+ D EI (/ T0 2) Z0))
  16. (princ DZ)(princ " 0/")(princ (- T0))(princ "  ")
  17. (princ Dt)(princ " 0/")(princ (- T0))
  18. (princ)
  19. )
 楼主| 发表于 2005-8-7 17:48:00 | 显示全部楼层
呵呵,谢谢了
 楼主| 发表于 2005-8-7 17:59:00 | 显示全部楼层
我们这个论坛里有没有关于二进制小数的计数问题的专题帖子或文章啊?我对这个不是太懂,想看看~~~~~~谢谢各位指点哈~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 21:42 , Processed in 0.208029 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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