明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2436|回复: 6

initget的用法

[复制链接]
发表于 2012-5-28 21:56 | 显示全部楼层 |阅读模式
本帖最后由 qq229918602 于 2012-5-28 21:59 编辑

(initget 1 "1.1 0.7 0.55 0.4")
(setq ldhd (getkword "the lcd's thickness is: "))

请问怎么输入1时还是有效的?不是控制了只能输入"1.1 0.7 0.55 0.4“么?

万分感谢。

发表于 2012-5-28 22:23 | 显示全部楼层
只要输入不造成歧义。假如关键字里面有1.2,输入1就不行了
 楼主| 发表于 2012-5-28 22:28 | 显示全部楼层
caoyin 发表于 2012-5-28 22:23
只要输入不造成歧义。假如关键字里面有1.2,输入1就不行了

但是我就是想控制输入这几个数字。因为是一个规格来的。怪不得输入0.5也是有效,请问版主有无好的解决方法??谢谢
发表于 2012-5-28 23:57 | 显示全部楼层
(while (not K)
  (setq K (getstring "\nthe lcd's thickness is: "))
  (or (member K '("1.1" "0.7" "0.55" "0.4"))
      (setq K nil)
      (princ "\n**无效的输入**")
  )
)
 楼主| 发表于 2012-5-29 19:32 | 显示全部楼层
caoyin 发表于 2012-5-28 23:57
(while (not K)
  (setq K (getstring "\nthe lcd's thickness is: "))
  (or (member K '("1.1" "0.7" " ...

感谢版主,我的解决方法。
(setq lst '(1.1 0.7 0.55 0.4))
  (while
    (not
      (member (setq
                ldhd (getreal "\nthe lcd's thickness is: ")
              )
              Lst
      )
    )
  )
发表于 2012-5-29 19:36 | 显示全部楼层
看似差不多,但你的在少数的情况下可能行不通,因为实数存在精度的问题
 楼主| 发表于 2012-5-29 20:51 | 显示全部楼层
caoyin 发表于 2012-5-29 19:36
看似差不多,但你的在少数的情况下可能行不通,因为实数存在精度的问题

感谢版主。。能举例说一下什么情况下的实数精度问题行不通呢?

点评

譬如表中包含实数0.954300000012,你测试下行不行  发表于 2012-5-30 14:33
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 08:10 , Processed in 1.010698 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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