找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 挚友01

[求助] 老问题,始终没解决,又出现了,怎么办?

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-3-5 17:10:46 | 显示全部楼层
本帖最后由 newer 于 2018-3-5 17:32 编辑

你想要做什么,一次行说出来最好,别帮你解决一个,你又说出其他的。

"123.1231231230000"

这个字符串已经求出了,想取什么结果,还难吗?你想0都去掉也好,保留一个0也好,都很容易。

你只要写个字符串处理函数就行了。

你想要得到什么字符串,就得到什么字符串。

你总想把你的思路去影响别人跟这你走,你这样求助不会得到好的帮助,

你只要说出条件是什么,你想要什么结果,就足够了,为什么? 因为你的思路是错的。

建议你去看看置顶的 “提问的智慧”的帖子,如何求助。

你要的字符串处理的东西,开源函数库论坛有代码,去找找看看。

1、你本意是想把 EXCEL 单元格的内容转成 AUTOCAD里面的字符串?
2、EXCEL显示什么什么样,AUTOCAD的字符串就是什么样?

首先,EXCEL里面单元格保存的是有格式的,你要先在EXCEL里面,判断单元格是什么,如果是文本的,你提取出来的就是文本。如果是数,那么格式就有精度是多少,比如2位,那么你到AUTOCAD里面就(rtos str 2 2)就行了。

还有,如果你就想把参数是实数的,想获得准确的位数,是不确定的,这个和浮点数的存储方式有关系,论坛有贴子讨论,搜索看看。
比如:
命令: (setq a 3.232334)
3.23233

命令: (rtos a 2 100)
"3.232333999999999"

上面这个例子说明了,AUTOCAD的实数小数点后最多是15位。而计算机要保存3.232334这个浮点数,15位不够。

你给的a是3.232334,可存储到变量的不是确切数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-5 20:24:27 | 显示全部楼层
本帖最后由 挚友01 于 2018-3-5 20:31 编辑

1、我本意是想把 EXCEL 单元格的内容转成 AUTOCAD里面的字符串
2、EXCEL显示什么什么样,AUTOCAD的字符串就是什么样
我就要这个,EXCEL里的数据是人为录入的,不管什么格式,如55.0 或55.00,所有的数据照搬。。。。
所以我要做一个程序,不管每个数据是什么样,只要是实数,我都要判断他的小数位数,然后转换成字符串(在AutoCAD)中。。。(RTOS VAL1 2 C)   ;c为小数位数
调用程序: (vale_jd1 a) ; a 为要处理的单个数据

下面是处理程序

(defun vale_jd1(val1 / val1 val2 tem tem1 tem3 c)
(setq tem1 (- val1 (fix (+ val1 1e-12))))  
(prin1 tem1)(terpri)
(setq c 0 cc 10)
(while (/= (- (setq tem3 (* cc tem1))(fix (+ tem3 1e-12))) 0)
(prin1 tem3)(prin1 " ")(prin1 (fix tem3))(terpri)
   (setq c (+ c 1))
   (setq cc (* cc 10))
)
(rtos val1 2 c)
)
可编程时发现(- b (fix b))并不等于0.所以才以此问题请大家帮助....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2018-3-5 20:51:33 | 显示全部楼层

你先把 excel 中的格式设为 Text 格式再读取

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-3-5 21:01:55 | 显示全部楼层

EXCEL单元格内容是可以直接读成字符串的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-3-5 21:08:26 | 显示全部楼层

浮点数就是有误差,所以判断浮点数是否相等,尽量别用等号。浮点数比较用equal加精度,最好的办法处理前先转成字符串。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2018-3-6 14:14:28 | 显示全部楼层
本帖最后由 挚友01 于 2018-3-6 14:16 编辑

终于搞定了,本来吗,程序是可以实现一切想要实现的事,只要去专研,没什么不可以办到的....


下面是原处理程序

(defun vale_jd1(val1 / val1 val2 tem tem1 tem3 c)
(setq tem1 (- val1 (fix (+ val1 1e-12))))  
(prin1 tem1)(terpri)
(setq c 0 cc 10)
(while (/= (- (setq tem3 (* cc tem1))(fix (+ tem3 1e-12))) 0)
(prin1 tem3)(prin1 " ")(prin1 (fix tem3))(terpri)
   (setq c (+ c 1))
   (setq cc (* cc 10))
)
(rtos val1 2 c)
)


改进后的程序,实际只有微小差别...
; 接收参数 实数 返回字符,精度
(defun vale_jd1(val1 / val1 val2 tem tem1 tem3 c cc n)
(setq c 0 cc 10 n "T")
(while n
   (if (= (* val1 cc)(fix (* val1 cc)))(setq n nil))
   (setq c (+ c 1))
   (setq cc (* cc 10))
)
(rtos val1 2 c)
)

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

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 20:12 , Processed in 0.400432 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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