프로그램
캐드 분류

캐드 덧셈뺄셈 리습인데 소수점 두자리까지만 나오게 수정부탁드립니다.

컨텐츠 정보

본문

안녕하세요.

덧셈, 뺄셈 리습이 있는데, 둘다 사용을 하면 소수점 네자리까지 나옵니다.

예를들어 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)
)

관련자료

댓글 2 / 1 페이지

상큼메론90님의 댓글

(setq tot (strcat (substr tot 1 (- an 4)) "." (substr tot (- an 3) 4) )) 을

아래와 같이 바꾸세요

(setq tot (strcat (substr tot 1 (- an 2)) "." (substr tot (- an 3) 2) ))

이데온소드님의 댓글

댓글 감사합니다. 해당부분 수정했는데 덧셈이 이상하게 되서 (setq tot (strcat (substr tot 1 (- an 4)) “.” (substr tot (- an 3) 2) )) 로 수정했더니 잘되네요. 감사합니다.

전체 72 / 1 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0