안녕하세요.
덧셈, 뺄셈 리습이 있는데, 둘다 사용을 하면 소수점 네자리까지 나옵니다.
예를들어 0.5600 이렇게요.
그래서 소수점 둘째자리까지만 나오게 했음 하는데 어떻게 수정하면 될까요?
;;===========================================================
; Number plus(98CHO_I)
; ->숫자의 합 구하기(2자리)
;;———————————————————–
(defun c:+(/ myerror choi d_ts w_os ht ss grpt pt1 n k tot en tv rtv an)
;start — Internal error handler ———-
(defun myerror(S)
(if (/= s “Function cancelled”)(princ (strcat “nError:” s)))
(setvar “osmode” w_os)
(setq *error* olderr)(princ) )
(setq olderr *error* *error* myerror)
;end—————————————-
(setq choi (getvar “orthomode”) d_ts (getvar “textsize”)
w_os (getvar “osmode”) )
(prompt “… 더하기”)
(setvar “orthomode” 0) (setvar “osmode” 0)
(setq ht d_ts)
(prompt “nText Height<“) (prin1 ht) (prompt “>: “)
(setq ht (getdist))
(if (= ht nil) (setq ht d_ts))
(prompt “nSelect number->”)
(setq ss (ssget))
(setq grpt (grread T))
(setq pt1 (cadr grpt))
(setq n (sslength ss))
(setq k 0 tot 0)
(while (<= 1 n)
(setq en (ssname ss k))
(setq tv (cdr (assoc 1 (entget en))))
(setq rtv (atof tv))
(setq tot (+ tot rtv))
(setq n (- n 1))
(setq k (+ k 1))
)
(setq tot (rtos (* tot 10000) 2 0))
(setq an (strlen tot))
(setq tot (strcat (substr tot 1 (- an 4)) “.” (substr tot (- an 3) 4) ))
(command “text” “j” “r” pt1 ht “0” tot)
(prompt “nEnter text point->”)
(command “move” “l” “” pt1 pause)
(setvar “orthomode” choi) (setvar “osmode” w_os)
(prompt “n합 계 : “) (prin1 tot)
(prin1)
)
댓글 감사합니다. 해당부분 수정했는데 덧셈이 이상하게 되서
(setq tot (strcat (substr tot 1 (- an 4)) “.” (substr tot (- an 3) 2) ))
로 수정했더니 잘되네요. 감사합니다.