사칙연산 리습과 관련하여 질문드립니다.
현재 계산을 하게 되면 소수점 2자리까지 나오게 되는데….
이를 소수점 3자리까지 나오게 계산을 하려면 어떻게 해야하나요?
어떤걸 수정해야할지…감이 안잡힙니다….
<리습 내용>
;**************************작성자 : YUN D.W**************************
(defun c:ww (/ bas)
(graphscr)
(setvar “osmode” 0)
; (reset)
(setq siz (getvar “dimscale”))
(setvar “cmdecho” 0)
(setvar “blipmode” 0)
(setq txt (* 3 siz)) ;text height
;****************************계산식**********************************
(setq desc(getstring “nChoose >1-덧셈 >2-뺄셈 >3-곱셈 >4-나눗셈:”))
(if (/= desc “0”)
(progn
(cond ((= desc “1”)
( prompt “nSELECT STRING NUMBER TO SUM : “)
( SETQ A (SSGET) B (SSLENGTH A) C 0 AA 0.0 AB 0.0 )
( WHILE (< C B)
(SETQ D (SSNAME A C))
(IF (= (CDR (ASSOC 0 (ENTGET D))) “TEXT”)
(SETQ AA (CDR (ASSOC 1 (ENTGET D))) AB (+ AB (ATOF AA))))
(SETQ C (+ C 1))))
((= desc “2”)
( prompt “nSELECT STRING NUMBER TO SUBTRACT : “)
( SETQ A (SSGET) B (SSLENGTH A) C 1 D (SSNAME A 0) AA 0.0
AB (ATOF (CDR (ASSOC 1 (ENTGET D)))) )
( WHILE (< C B)
(SETQ D (SSNAME A C))
(IF (= (CDR (ASSOC 0 (ENTGET D))) “TEXT”)
(SETQ AA (CDR (ASSOC 1 (ENTGET D))) AB (- AB (ATOF AA))))
(SETQ C (+ C 1))))
((= desc “3”)
( prompt “nSELECT STRING NUMBER TO MULTIPLY : “)
( SETQ A (SSGET) B (SSLENGTH A) C 1 D (SSNAME A 0) AA 0.0
AB (ATOF (CDR (ASSOC 1 (ENTGET D)))) )
( WHILE (< C B)
(SETQ D (SSNAME A C))
(IF (= (CDR (ASSOC 0 (ENTGET D))) “TEXT”)
(SETQ AA (CDR (ASSOC 1 (ENTGET D))) AB (* AB (ATOF AA))))
(SETQ C (+ C 1))))
((= desc “4”)
( prompt “nSELECT STRING NUMBER TO DIVIDE : “)
( SETQ A (SSGET) B (SSLENGTH A) C 1 D (SSNAME A 0) AA 0.0
AB (ATOF (CDR (ASSOC 1 (ENTGET D)))) )
( WHILE (< C B)
(SETQ D (SSNAME A C))
(IF (= (CDR (ASSOC 0 (ENTGET D))) “TEXT”)
(SETQ AA (CDR (ASSOC 1 (ENTGET D))) AB (/ AB (ATOF AA))))
(SETQ C (+ C 1))))
))
(progn
princ “숫자가 아님 “))
;****************************정답출력**********************************
(setq ANS (rtos AB 2 2))
( PRINC )
( prompt “n =”) ( PRINC ANS )
(setq BAS (getpoint “nPick base point :”))
(command “text” “j” “mr” BAS txt 0 ANS)
)
p.s> 한가지 더 질문이 있습니다.
해당 리습을 사용한후에 osmode가 원래대로 돌아오질 않던데
마지막 ” ) ” 앞줄에
<리습내용>
(Command “osmode” “175”)
(Command “BLIPMode” “OFF”)
(Command “-SCALELISTEDIT” “R” “Y”))
이런 내용을 집어넣어도 무리가 없을지요….
캐드 고수분의 도움이 필요해요~ㅜㅜ
공유