明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1708|回复: 7

[提问] 怎么让0.000前面加上±

  [复制链接]
发表于 2014-7-5 16:09:28 | 显示全部楼层 |阅读模式
(if(not (setq str (getreal "\n请输入标高±0.000:")));;与提示无关,输入的必须实数或nil
            (setq str 0.000)
            )
            (setq str (rtos str 2 3));实数保留3位小数(四舍五入),并转为转为字符串   
            (command "text" "j" "c" "non" p4 300 0 str)

这是程序中的一段,怎么让0.000前面加上±。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-7-5 18:50:32 | 显示全部楼层
  1.   (if(not (setq str (getreal "\n请输入标高±0.000:")));;与提示无关,输入的必须实数或nil
  2.     (setq str "%%P0.000");or (setq str "±0.000")
  3.     (setq str (rtos str 2 3));实数保留3位小数(四舍五入),并转为转为字符串
  4.     )
  5.   (command "text" "j" "c" "non" p4 300 0 str)
发表于 2014-7-5 23:56:15 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-7-8 01:15 编辑

(setq str (strcat(cond((> str 0)"+")
                         ((= str 0)"±")
                         (t "")) (rtos str 2 3)))

  1. (defun signrtos(r n)
  2.   (strcat(cond((> r 0)"+")((= r 0)"±")(t "")) (rtos str 2 n))
  3.   )


(setq str(getreal"提示字符串<±0.000>")
        str(signrtos(if str str 0) 3))
"+1.000"
"±0.000"
"-2.000"
又画蛇添足了
 楼主| 发表于 2014-7-6 09:47:27 | 显示全部楼层
楼上的程序不行,我用下面的程序可以让0.000前面加上±,但没法加入“(setq str (rtos str 2 3));实数保留3位小数(四舍五入)”这句
(setq str (getstring "\n请输入标高±0.000:"))
            (if        (= str "")
                (setq str "%%P0.000")
            )   
 楼主| 发表于 2014-7-7 07:38:00 | 显示全部楼层
(setq str (strcat(cond((> str 0)"+")
                         ((= str 0)"±")
                         (t "")) (rtos str 2 3)))
请问这里的 (t "")是啥意思

点评

t=true  发表于 2014-7-7 07:58
发表于 2014-7-7 07:58:40 | 显示全部楼层
  1. (if (not (setq str (getreal "\n请输入标高±0.000:")))
  2.   (setq str 0.000)
  3. )
  4. (setq str (if (/= str 0)
  5.             (rtos str 2 3)
  6.             "±0.000"
  7.           )
  8. )
 楼主| 发表于 2014-7-7 08:45:02 | 显示全部楼层
谢谢老师的出手, 程序应该是没有了,但±0.000显示的是?.000,我用±0.000的字体刷它,还是显示?.000。
再请大侠出手

点评

字体问题  发表于 2014-7-7 08:57
发表于 2014-7-7 08:58:41 | 显示全部楼层
szx025 发表于 2014-7-7 08:45
谢谢老师的出手, 程序应该是没有了,但±0.000显示的是?.000,我用±0.000的字体刷它,还是显示?.000。
...
  1. (if (not (setq str (getreal "\n请输入标高±0.000:")))
  2.   (setq str 0.000)
  3. )
  4. (setq str (if (/= str 0)(rtos str 2 3)"%%P0.000"))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 09:41 , Processed in 0.180008 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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