找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 635|回复: 4

[LISP程序]:请教老师们,如何把一个有9位的实数,在一个输出的数据文件中也显示为9位

[复制链接]
发表于 2004-3-28 00:51:16 | 显示全部楼层 |阅读模式

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

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

×
多谢各位老师指教,
    一个实数,在autocad中只显示6位,在被写入一个数据文件时,它也是6位;而其他程序
在使用这个数据文件时,当然就会因为精度不够,而出错了。我真的不知到,怎么才能在
数据文件里,一个数据能显示到9位呢
   
     例如:(setq A  123456.789),我怎么让数A,在输出的数据文件(如1.txt)中显示为
(123456.789),而不是(123456.0)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-28 07:48:57 | 显示全部楼层
_$ (setq a 123456.789)
123457.0
_$ a
123457.0
_$ (- a 123456)
0.789
_$ (rtos a 2 3)
"123456.789"
_$
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-28 10:04:34 | 显示全部楼层
老师:您好,谢您指导!
我看过了,不过输出的数据是字符串形式,可第三方程序,如果是按照实数形式要求输入的,就相当麻烦了。

您看如下例子:
(Defun C:Pc3 ()
   (setq pa '(1234567.891  2345678.912 ))      
   (setq pb '(2234567.891  3345678.912 ))
     
   (setq df   "C:\\Pc3.txt"  )  ;自变量 df 是一个字符串,指定新的数据文件的完整路径和名称
   (setq fp (open df "w"))                        ;打开指定文件进行写入
   (prin1 pa fp)                                  ;写入数据pa
   (princ "\n" fp)                                ;换行
   (prin1 pb fp)                                  ;写入数据pb
   (close fp)                                     ;关闭指定文件进行写入
)

用记事本打开数据文件C:\\Pc3.txt,您看Pc3.txt中有两行数据:
(1.23457e+006 2.34568e+006)
(2.23457e+006 3.34568e+006)

您再看:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(Defun C:Pc33 ()
   (setq pa '(123456.7891  234567.8912 ))      
   (setq pb '(223456.7891  334567.8912 ))
     
   (setq df   "C:\\Pc33.txt"  )  ;自变量 df 是一个字符串,指定新的数据文件的完整路径和名称
   (setq fp (open df "w"))                        ;打开指定文件进行写入
   (prin1 pa fp)                                  ;写入数据pa
   (princ "\n" fp)                                ;换行
   (prin1 pb fp)                                  ;写入数据pb
   (close fp)                                     ;关闭指定文件进行写入
)

用记事本打开数据文件C:\\Pc33.txt,您看Pc33.txt中有两行数据:
(123457.0 234568.0)
(223457.0 334568.0)

您看,autocad无情地只保留了6位有效数;其余的数被当成垃圾截掉了。这显然是错误的。
我也想把数据形式的(123456.7891  234567.8912 )变为字符串形式的("123456.7891"  "234567.8912" ),
可第三方程序,是按照数据形式的(123456.7891  234567.8912 )要求输入的。您看我该怎么办呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-28 11:49:45 | 显示全部楼层
(Defun C:Pc33 ()
(setq pa '(123456.7891 234567.8912 ))
(setq pb '(223456.7891 334567.8912 ))

(setq df "d:\\Pc33.txt" ) ;自变量 df 是一个字符串,指定新的数据文件的完整路径和名称
(setq fp (open df "w")) ;打开指定文件进行写入
(princ "(" fp)
(mapcar '(lambda (x) (princ (strcat (rtos x) " ") fp))  pa) ;写入数据pa
  (princ ")" fp)
(princ "\n" fp) ;换行
  (princ "(" fp)
(mapcar '(lambda (x) (princ (strcat (rtos x) " ") fp))  pa)  ;写入数据pb
(princ ")" fp)
(close fp) ;关闭指定文件进行写入
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-28 21:20:50 | 显示全部楼层
多谢您指导,终于找到答案了!
     编程----真的很累,每编一个就象剥了一层皮。一个月了,夜里2点之前没睡过觉。白天照常工作,晚上编程;经常是一边学,一边编;没有老师,不过在网上幸亏有您这样的热心的高手。
     多谢您指路,有时真以为:从黑暗中找不到路了;经您指导,终于解决了我的疑问。
     非常非常感谢大家。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 02:01 , Processed in 0.185214 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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