| r311 vs r312 | ||
|---|---|---|
| ... | ... | |
| 384 | 384 | {{{#!if au=+au, au=au.toString(), bu=+bu, bu=bu.toString() |
| 385 | 385 | }}} |
| 386 | 386 | |
| 387 | 이 상태의 au, ab를 ma로 저장하고 bu, bb를 mb로 저장합니다. | |
| 388 | {{{#!if ad==-1 | |
| 389 | {{{#!if ma=au | |
| 390 | }}}}}}{{{#!if ad!=-1 | |
| 391 | {{{#!if ma=au+"."+ab | |
| 392 | }}}}}} | |
| 393 | {{{#!if bd==-1 | |
| 394 | {{{#!if mb=bu | |
| 395 | }}}}}}{{{#!if bd!=-1 | |
| 396 | {{{#!if mb=bu+"."+bb | |
| 397 | }}}}}} | |
| 398 | au 앞에 음수 부호가 달려 있었다면 ma 앞에 음수 기호를 붙입니다. | |
| 399 | {{{#!if as[0]==45 | |
| 400 | {{{#!if ma="-"+ma | |
| 401 | }}}}}} | |
| 402 | bu 앞에 음수 부호가 달려 있었다면 mb 앞에 음수 기호를 붙입니다. | |
| 403 | {{{#!if bs[0]==45 | |
| 404 | {{{#!if mb="-"+mb | |
| 405 | }}}}}} | |
| 406 | ||
| 407 | ||
| 387 | 408 | ##=== 자릿수 측정 === |
| 388 | 409 | 나누는 자릿수에 맞춰 결과를 표시하고자 ac, bc를 자릿수를 나타내는 값으로 정의합니다. |
| 389 | 410 | 먼저 au는 앞에 적어놓은 0을 제거한 문자열이므로 +au>0인 경우 ac를 au의 문자열 길이에서 1을 뺀 값으로 정의합니다. |
| 390 | 411 | {{{#!if +au>0 |
| 391 | 412 | {{{#!if ac=au.length-1 |
| 392 | 413 | }}}}}} |
| 393 | (au, ab 둘다 0인 경우 앞에 처리하는 식이 있 | |
| 414 | (au, ab 둘다 0인 경우 앞에 처리하는 식이 있고, au, ab 둘 중 하나라도 0이 아닐 때) au가 0이라면 ab는 단순 정수값으로 옮겼을 때 0보다 큰 값이 나옵니다. 소수점 아래 처음으로 0이 아닌 수가 나오는 자릿수를 구한 다음 덧셈 연산에서 그 수의 역원이 되는 수를 ac로 정의합니다. 이를 구하고자 ab의 뒤에 0을 더 붙여 18자리 숫자로 만든 다음 정수로 바꾸어 구합니다. | |
| 394 | 415 | {{{#!if +au==0 |
| 395 | 416 | {{{#!if ac=ab+pd, ac=ac.substr(0,18), ac=+ac, ac=ac.toString(), ac=ac.length-19 |
| 396 | 417 | }}}}}} |
| ... | ... | |
| 1483 | 1504 | ##i=0 |
| 1484 | 1505 | {{{#!if br=false |
| 1485 | 1506 | }}}다시 정렬된 bu, bb의 값은 바뀌지 않습니다. bu, bb로 나눈 몫만큼 au, ab에서 감소시킨 다음 au와 ab를 다시 정렬시키며, au와 ab가 모두 0이 되면 더 이상 계산하지 않도록 br를 true로 반환합니다. |
| 1486 | au와 ab의 값을 가져와 tu와 tv로 먼저 복제합니다. (계산 결과에 쓰게 됩니다.) | |
| 1487 | {{{#!if tu=au, tv=ab | |
| 1488 | }}} | |
| 1489 | 1507 | 그 다음 계산을 편하게 할 수 있도록 텍스트값으로 된 au, ab, bu, bb를 정수값으로 변환합니다. |
| 1490 | 1508 | {{{#!if au=+au, ab=+ab, bu=+bu, bb=+bb |
| 1491 | 1509 | }}} |
| ... | ... | |
| 5226 | 5244 | }}} |
| 5227 | 5245 | |
| 5228 | 5246 | ##== 계산 결과 표시 정리하기 == |
| 5247 | ##=== 결과값 표시 정리하기 === | |
| 5229 | 5248 | 연산이 끝났으면 표기된 숫자를 정리합니다. |
| 5230 | 5249 | |
| 5231 | 5250 | ##rs, ru 정리 부분 |
| ... | ... |