| r252 vs r253 | ||
|---|---|---|
| ... | ... | |
| 77 | 77 | {{{#!if br=true, ea=1 |
| 78 | 78 | }}}}}} |
| 79 | 79 | |
| 80 | ||
| 80 | 의도적으로 00을 적어놓았을 수 있으므로 tm 앞에 숫자 1을 더 붙인 다음, 이를 값으로 바꾼 다음 다시 텍스트 값으로 바꾼 문자열을 tn으로 정의합니다. 중간에 숫자가 아닌 문구가 들어갔다면 숫자가 아닌 문구가 들어간 부분부터 값이 잘려 나오게 됩니다. | |
| 81 | 81 | 숫자가 아닌 문구를 섞어넣었음이 탐지될 경우 오류코드 6번(소수점 윗자리 오류)을 반환합니다. (반점(,)도 걸릴 수 있습니다.) |
| 82 | 82 | {{{#!if ts&&!br |
| 83 | 83 | {{{#!if tm="1"+tm, tn=+tm, tn=tn.toString(), ts=(tm==tn) |
| ... | ... | |
| 1434 | 1434 | |
| 1435 | 1435 | au, ab, bu, bb를 18자로 만들었으므로 36자리 정수의 나눗셈으로 봅니다. |
| 1436 | 1436 | a/b=(au+ab)/(bu+bb)=(+(au.substr(0,18)+ab.substr(0,18)))/(+(bu.substr(0,18)+bb.substr(0,18)))와 같습니다. |
| 1437 | ||
| 1438 | ||
| 1439 | ||
| 1440 | {{{#!if | |
| 1441 | {{{#!if | |
| 1437 | ## 자릿수 측정 | |
| 1438 | 나누는 자릿수에 맞춰 결과를 표시하고자 ac, bc를 자릿수를 나타내는 값으로 정의합니다. | |
| 1439 | 먼저 au는 앞의 0을 제거한 문자열이므로 +au>0인 경우 ac를 au의 문자열 자릿수로 정의합니다. | |
| 1440 | {{{#!if +au>0 | |
| 1441 | {{{#!if ac=au.length | |
| 1442 | 1442 | }}}}}} |
| 1443 | ||
| 1444 | au | |
| 1445 | {{{#!if | |
| 1446 | {{{#!if | |
| 1443 | (au, ab 둘다 0인 경우 앞에 처리하는 식이 있으며) au가 0이라면 ab는 0보다 크며, 소수점 아래 처음으로 0이 아닌 수가 나오는 자릿수를 고른 다음 덧셈 연산에서 그 수의 역원이 되는 수를 ac로 정의합니다. 이를 구하고자 뒤에 0을 더 붙여 18자리 숫자로 만든 다음 정수로 바꾸어 구합니다. | |
| 1444 | {{{#!if +au==0 | |
| 1445 | {{{#!if ac=ab+pd, ac=ac.substr(0,18), ac=+ac, ac=ac.toString(), ac=ac.length-19 | |
| 1447 | 1446 | }}}}}} |
| 1448 | 1447 | |
| 1449 | ##b | |
| 1448 | bc도 a와 같은 방법으로 정의합니다. | |
| 1449 | {{{#!if +bu>0 | |
| 1450 | {{{#!if bc=bu.length | |
| 1451 | }}}}}}{{{#!if +bu==0 | |
| 1452 | }}} | |
| 1450 | 1453 | |
| 1454 | ||
| 1451 | 1455 | ##자릿수 기억 (이후에 서술) |
| 1452 | 1456 | ##몫 서술 |
| 1453 | 1457 | 제일 높은 자리부터 내려오면서 처음으로 0이 아닌 수를 왼쪽으로 당기는 과정을 거쳤으므로 (1부터 시작하는 18자리+18자리 숫자)/(1부터 시작하는 18자리+18자리 수) 연산이 됩니다. |
| ... | ... |