lisp如何设置单进双不进
通常是四舍五入,逢5必进,可是测量要求逢5是单进双不进,比如2.555保留2位数是2.56,2.545保留2位数是2.54,那么lisp如何设置单进双不进?请高手告诉我,谢谢!(setq numb 2.555 n -2)
(setq a (/ numb (expt 10.0 n)))
(setq b (fix a))
(setq c (* (- a b) 10.0))
(setq c (- c (fix c)))
(and (= c 5) (= (rem b 2) 0) (setq d (* b (expt 10.0 n))))
(and (= c 5) (= (rem b 2) 1) (setq d (* (1+ b) (expt 10.0 n)))) nzl1116 发表于 2013-4-28 08:36 static/image/common/back.gif
(setq numb 2.555 n -2)
(setq a (/ numb (expt 10.0 n)))
(setq b (fix a))
谢谢,限于本人水平,还是没弄明白,下面程序帮忙修改,使之能达到单进双不进。原来是逢5必进。谢谢!
;;; 写出范围面积
(DEFUN C:fwmj(/ OLDOS PT STA QAREA)
(setq olderr *error*)
(setq *error* myerr)
(SETVAR "CMDECHO" 0)
(SETQ OLDOS (GETVAR "OSMODE"))
(SETVAR "OSMODE" 0)
(SETQ PT (GETPOINT"\n选写入面积值之点:"))
(SETQ STA (BPOLY PT))
(IF (= STA NIL) (EXIT))
(COMMAND "AREA" "E" "L")
(SETQ QAREA (strcat"S="(rtos (getvar "area") 2 2)"㎡"))
(COMMAND "TEXT" PT "" "" QAREA)
(SETVAR "OSMODE" OLDOS)
(SETVAR "CMDECHO" 1)
(setq *error* olderr)
(PRINC)
)
页:
[1]