怎么让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前面加上±。
(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-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"
又画蛇添足了 楼上的程序不行,我用下面的程序可以让0.000前面加上±,但没法加入“(setq str (rtos str 2 3));实数保留3位小数(四舍五入)”这句
(setq str (getstring "\n请输入标高±0.000:"))
(if (= str "")
(setq str "%%P0.000")
) (setq str (strcat(cond((> str 0)"+")
((= str 0)"±")
(t "")) (rtos str 2 3)))
请问这里的 (t "")是啥意思 (if (not (setq str (getreal "\n请输入标高±0.000:")))
(setq str 0.000)
)
(setq str (if (/= str 0)
(rtos str 2 3)
"±0.000"
)
) 谢谢老师的出手, 程序应该是没有了,但±0.000显示的是?.000,我用±0.000的字体刷它,还是显示?.000。
再请大侠出手 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]