szx025 发表于 2014-7-5 16:09:28

怎么让0.000前面加上±

(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前面加上±。

edata 发表于 2014-7-5 18:50:32

(if(not (setq str (getreal "\n请输入标高±0.000:")));;与提示无关,输入的必须实数或nil
    (setq str "%%P0.000");or (setq str "±0.000")
    (setq str (rtos str 2 3));实数保留3位小数(四舍五入),并转为转为字符串
    )
(command "text" "j" "c" "non" p4 300 0 str)

llsheng_73 发表于 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)))

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

(setq str(getreal"提示字符串<±0.000>")
      str(signrtos(if str str 0) 3))
"+1.000"
"±0.000"
"-2.000"
又画蛇添足了

szx025 发表于 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")
          )   

szx025 发表于 2014-7-7 07:38:00

(setq str (strcat(cond((> str 0)"+")
                         ((= str 0)"±")
                         (t "")) (rtos str 2 3)))
请问这里的 (t "")是啥意思

xyp1964 发表于 2014-7-7 07:58:40

(if (not (setq str (getreal "\n请输入标高±0.000:")))
(setq str 0.000)
)
(setq str (if (/= str 0)
          (rtos str 2 3)
          "±0.000"
          )
)

szx025 发表于 2014-7-7 08:45:02

谢谢老师的出手, 程序应该是没有了,但±0.000显示的是?.000,我用±0.000的字体刷它,还是显示?.000。
再请大侠出手

xyp1964 发表于 2014-7-7 08:58:41

szx025 发表于 2014-7-7 08:45 static/image/common/back.gif
谢谢老师的出手, 程序应该是没有了,但±0.000显示的是?.000,我用±0.000的字体刷它,还是显示?.000。
...

(if (not (setq str (getreal "\n请输入标高±0.000:")))
(setq str 0.000)
)
(setq str (if (/= str 0)(rtos str 2 3)"%%P0.000"))
页: [1]
查看完整版本: 怎么让0.000前面加上±