找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 691|回复: 4

[求助] [求助]:LISP中怎样控制千分位符号

[复制链接]
发表于 2005-9-28 08:58:20 | 显示全部楼层 |阅读模式

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

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

×
大家知道,图纸明细表中重量统计,可以逐个选择字符变为数字类型,然后相加而得总数量,再次将总数量变为字符类型,填写到图纸明细表中,但是我遇到的问题是:如果字符中有千分位符号(10,000.5;1,000.5),或者有的字符有千分位符号,而有的字符没有千分位符号(10000.5;1000.5;10.5),而且要求总数量要有千分位符号怎么办,因为我发现带千分位符号的字符不能变为数字类型,麻烦高手执教。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 11307个

财富等级: 富甲天下

发表于 2005-9-28 10:05:23 | 显示全部楼层
从字串变数能处理,反过来就不太容易了。下面函数可以将带逗号的串转为数字。
[php]
(DEFUN FT (STR / TSTR I)
(SETQ TSTR "" I 1)
(REPEAT (STRLEN STR)
  (IF (/= (SUBSTR STR I 1) ",")
   (SETQ TSTR (STRCAT TSTR (SUBSTR STR I 1)))
  )
  (SETQ I (1+ I))
)
(DISTOF TSTR 2)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-9-29 08:51:39 | 显示全部楼层
;请试用以下程序
;Command: (jdh "10000.5") "10,000.5"
;Command: (jdh "100005") "100,005"
;Command: (jdh "0.100005") "0.100005"
;Command: (jdh "1.00005") "1.00005"

(defun jdh(zfc / a1 a2)
   (setq zfc (vl-string->list zfc)
         a1  (member 46 zfc)
         zfc (reverse zfc)
         a2  nil
  )
  (repeat (length a1) (setq zfc (cdr zfc)))
  (if (> (length zfc) 3)(repeat 3 (setq a2 (cons (car zfc) a2) zfc (cdr zfc))))
  (setq zfc (reverse zfc))
  (if a2 (setq zfc (append zfc (cons 44 a2))))
  (if a1 (setq zfc (append zfc a1)))
  (vl-list->string zfc)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-9-29 14:53:02 | 显示全部楼层
;去掉千分位符号的字符变为数字类型请试用以下函数
;Command: (qdh "1,005.05")
;1005.05
(defun qdh(zfc)
   (read (vl-list->string (vl-remove 44 (vl-string->list zfc))))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 17:03 , Processed in 0.220540 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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