找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 860|回复: 4

[试用]:将阿拉伯数字转化为中文数字

[复制链接]
发表于 2002-11-13 15:19:11 | 显示全部楼层 |阅读模式

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

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

×
将阿拉伯数字转化为中文数字(只可以处理小于亿的数字)

  1. [FONT=courier new]
  2. ;{start
  3. ;;变量:
  4. ;;
  5. (setq cn-arablist-dd '((0 . "零")  (1 . "一") (2 . "二") (3 . "三") (4 . "四")
  6.                        ( 5 . "五")   (6 . "六" )  (7 . "七") (8 . "八") (9 . "九")
  7.                      (10 . "十") (100 . "百") (1000 . "千")  (10000 . "万"))
  8. )


  9. (defun arab2cn-dd   ( n / cncha)
  10. (setq cncha "")
  11. ;;;;;;;;;;;个位
  12. (setq gw (rem n 10))
  13. (if (/= gw 0) (setq cncha (cdr (assoc gw cn-arablist-dd))))
  14. ;;;;;;;;;;;十位
  15. (if (>= n 10)
  16. (progn
  17.    (setq sw (fix (/ (- (rem n 100) gw) 10) ))
  18.      (cond
  19.         ((= sw 0) (if  (/= cncha "") (setq cncha (strcat "零" cncha))))
  20.         ((= sw 1) (setq cncha (strcat "十" cncha)))
  21.         (t       (setq cncha (strcat (cdr (assoc sw cn-arablist-dd)) "十" cncha)))
  22.      )
  23. )
  24. )
  25. ;;;;;;;;;;;;百位
  26. (if (>= n 100)
  27. (progn
  28.    (setq bw (fix (/ (- (rem n 1000) sw gw) 100) ))
  29.      (cond
  30.         ((= bw 0) (if (and (/= "零" (substr cncha 1 2)) (/= cncha "")) (setq cncha (strcat "零" cncha))))
  31.         (t       (setq cncha (strcat (cdr (assoc bw cn-arablist-dd)) "百" cncha)))
  32.      )
  33. )
  34. )
  35. ;;;;;;;;;;;;千位
  36. (if (>= n 1000)
  37. (progn
  38.    (setq qw (fix (/ (- (rem n 10000) bw sw gw) 1000) ))
  39.      (cond
  40.         ((= qw 0) (if (and (/= "零" (substr cncha 1 2)) (/= cncha "")) (setq cncha (strcat "零" cncha))))
  41.         (t       (setq cncha (strcat (cdr (assoc qw cn-arablist-dd)) "千" cncha)))
  42.      )
  43. )
  44. )
  45. ;;;;;;;;;;;;万位
  46. (if  (>= n 10000)
  47. (progn
  48.    (setq ww (fix (/ (- (rem n 100000) qw bw sw gw) 10000) ))
  49.      (cond
  50.         ((= ww 0) (if (not (or (= cncha "" ) (= (substr cncha 1 2) "零" ))) (setq cncha (strcat "零" cncha))))
  51.         (t       (setq cncha (strcat (cdr (assoc ww cn-arablist-dd)) "万" cncha)))
  52.      )
  53. )
  54. )
  55. ;;;;;;;;;;;;大于万的
  56. (if (>= n 100000)
  57. (progn
  58.    (setq n (fix (/ n 10000)))
  59.   (if (= ww 0)    (setq cncha (strcat "万" cncha)) (setq cncha (substr cncha 3)))
  60. ;;;(print (arab2cn-dd n))
  61.    (setq cncha (strcat (arab2cn-dd n) cncha))
  62.   )
  63. )
  64. ;;;;;;;;;;;;没处理大于亿的


  65. )
  66. ;
  67. ;end}
  68. [/FONT]

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-13 15:23:33 | 显示全部楼层
谢谢,以后贴代码,能用下VB代码,把代码格式化下吗?每次都是我替你编辑:)

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

使用道具 举报

 楼主| 发表于 2002-11-13 16:04:51 | 显示全部楼层
原来[CODE]的用处是格式化LISP程序啊
现在会用了

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2002-11-14 12:20:13 | 显示全部楼层
本来是用来处理图框编号的,只是整数
贴上来的就是希望有人完善
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 06:30 , Processed in 0.172512 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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