| r100 vs r101 | ||
|---|---|---|
| ... | ... | |
| 181 | 181 | {{{#!if this.rp=rb.length |
| 182 | 182 | }}} |
| 183 | 183 | }}} |
| 184 | ||
| 184 | 185 | rb가 음수이면 rb의 첫번째(0번 index)의 문자열에는 마이너스(-)가 들어갑니다. 이 때는 rp를 rb의 마이너스 문자열을 세지 않은 자릿수가 되도록 앞에서 정의했던 rb.length에서 1만큼 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 값이 고정되어 있으므로 rp처럼 줄일 필요가 없습니다. |
| 185 | 186 | {{{#!if rb[0]==45 |
| 186 | 187 | {{{#!if rp=rp-1 |
| 187 | 188 | }}}}}} |
| 188 | 189 | |
| 190 | ru값이 어떤지 보고 각 경우 rb값이 어떠한가에 따라 rb만 정리하거나 rb와 ru 모두 정리합니다. | |
| 189 | 191 | Case 1 : ru가 0보다 큰 경우 |
| 190 | 192 | ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다. |
| 191 | 193 | {{{#!if ru>0 |
| ... | ... | |
| 200 | 202 | }}} |
| 201 | 203 | }}} |
| 202 | 204 | |
| 203 | Case 1-2 : rb가 음수 | |
| 205 | Case 1-2 : rb가 음수인 경우 ru에서 1을 빌려옵니다. 1보다 작은 양수값에서 1보다 작은 양수값을 빼면 -1보다 작을 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다. | |
| 204 | 206 | {{{#!if +rb<0 |
| 205 | 207 | {{{#!if ru=ru-1 |
| 206 | 208 | }}} |
| ... | ... | |
| 275 | 277 | 여기까지가 소수점 아래 자릿수 숫자들의 계산과정입니다. |
| 276 | 278 | }}} |
| 277 | 279 | |
| 280 | a와 b 모두 정수인 경우 ap, bp는 모두 0이 되므로 ru만을 그대로 문자열로 바꾸면 되며 소수점 아래(rb)는 표기해야 할 필요가 없으므로 rb="", (소수점 아래 자릿수)rp=0을 반환합니다. | |
| 281 | {{{#!if (ap==0)&&(bp==0) | |
| 282 | {{{#!if this.ru=ru.toString(), rb="", rp=0+0 | |
| 283 | }}}}}} | |
| 284 | ||
| 278 | 285 | 여기까지가 덧셈 또는 뺄셈연산의 계산과정입니다. |
| 279 | 286 | }}} |
| 280 | 287 | |
| ... | ... |