找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1325|回复: 7

[讨论]:为什么求出来的是整数?

[复制链接]
发表于 2005-10-6 11:06:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我有这样一个程序,为什么求出来的三角形面积是整数?

  1.   [FONT=courier new]
  2. (defun c:8test2        (/ area1 en oldosm per1 per2 per3 pt1 pt2 pt3)
  3.   (setq oldosm (getvar "osmode"));储存当前的捕捉点设置
  4.   (setvar "osmode" 0);设置当前为无捕捉点状态
  5.   (setq en (entsel "\n请选择三角形的一条边:"));点选一条直线
  6.   (setq        per1 (getlen (car en));取得一条直线的长度
  7.         pt1  (cadr en);取得点选时的点坐标
  8.   )

  9.   (setq en (entsel "\n请选择三角形的二条边:"))
  10.   (setq        per2 (getlen (car en))
  11.         pt2  (cadr en)
  12.   )
  13.   (setq en (entsel "\n请选择三角形的三条边:"))
  14.   (setq        per3 (getlen (car en))
  15.         pt3  (cadr en)
  16.   )
  17.   (setq area1 (area3w per1 per2 per3));求得三角形面积
  18.   (command "circle" "3p" "tan" pt1 "tan" pt2 "tan" pt3);画三角形的内切圆
  19.   (setvar "osmode" oldosm);恢复当前的捕捉点设置
  20.   (princ "三角形面积为=")
  21.   (princ area1)
  22.   (prin1)
  23. )
  24. ;;;调用方法->(area3w 边长1 边长2 边长3 )->可返回三角形面积
  25. (defun area3w (a b c)
  26.   (setq s (* (+ a b c ) 0.5))
  27.   (sqrt (* s (- s a) (- s b) (- s c)))
  28.   )
  29. ;;;调用方法->(getlen 对象名称)->可返回该对象的长度
  30. ;;;可处理对象包括line arc pline lwpolyline circle
  31. (defun getlen (ent)
  32.   (command "lengthen" ent "")
  33.   (getvar "perimeter"))
  34.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8157个

财富等级: 富甲天下

发表于 2005-10-6 11:25:39 | 显示全部楼层
试试 Luprec
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-6 11:36:36 | 显示全部楼层
不可能阿,只是显示问题吧
你用 rtos 2 2 转换来显示一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-6 12:12:15 | 显示全部楼层

Re: [讨论]:为什么求出来的是整数?

最初由 yjtdkj 发布
[B]我有这样一个程序,为什么求出来的三角形面积是整数?[/B]


系统变量LUPREC被设置为0的缘故。你可在程序中先读出并保存系统变量LUPREC数值,之后修改你需要的系统变量LUPREC值,最后将保存的恢复即可。
另楼主的“((defun c:8test2...”多一个“(”,程序不能正常运行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-6 12:27:24 | 显示全部楼层
改一下系统变量LUPREC,它决定小数后的位数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-6 15:05:43 | 显示全部楼层
改系统变量LUPREC没有效果,还是“狂刀”说的对,用RTOS来改精度
原因是不是PRINC函数只能显示小数点后一位?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8157个

财富等级: 富甲天下

发表于 2005-10-6 16:47:00 | 显示全部楼层
if Just something like 3.000 or 7.000
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-6 17:22:42 | 显示全部楼层
楼上的!!你是在灌水吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 15:55 , Processed in 0.267992 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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