| r166 vs r167 | ||
|---|---|---|
| ... | ... | |
| 1545 | 1545 | }}}{{{#!if tw=(+ab.substr(i-1,i))*(+bu.substr(17-i,1)), rs=rs+tw, i+=1 |
| 1546 | 1546 | }}} |
| 1547 | 1547 | |
| 1548 | ##곱셈 문자열 정리 | |
| 1549 | 18자리씩 끊어 표기하므로 소수점 위 19~36번째 자리에 해당하는 rs값이 (곱한 값을 더했는데도) 0일 경우 rs를 빈 문자열로 바꾸고 ru를 문자열로 변환합니다. rs값이 0보다 클 경우, 1~18번째 자리인 ru에 숫자를 채워야 하므로 ru를 문자열로 변환하고 ru의 왼쪽을 0으로 채웁니다. | |
| 1550 | {{{#!if rs==0 | |
| 1551 | {{{#!if rs="", ru=ru.toString() | |
| 1552 | }}}}}}{{{#!if rs>0 | |
| 1553 | {{{#!if rs=rs.toString(), ru=ru.toString(), ru="000000000000000000"+ru, ru=ru.substr(ru.length-18, 18) | |
| 1554 | }}}}}} | |
| 1548 | 1555 | |
| 1556 | 소수점 아래 19~36번째 자리에 해당하는 ri값이 0일 경우 ri를 빈 문자열로 바꿉니다. ri가 0보다 클 경우 rb를 문자열로 변환하고 rb의 오른쪽을 0으로 채웁니다. | |
| 1557 | {{{#!if ri==0 | |
| 1558 | {{{#!if ri="", rb=rb.toString() | |
| 1559 | }}}}}}{{{#!if ri>0 | |
| 1560 | {{{#!if ri=ri.toString(), rb=rb.toString(), rb=rb+"000000000000000000", rb=rb.substr(0, 18) | |
| 1561 | }}}}}} | |
| 1562 | ||
| 1563 | ||
| 1549 | 1564 | 여기까지가 a*b 계산과정입니다. |
| 1550 | 1565 | }}} |
| 1551 | 1566 | |
| 1552 | ##곱셈 문자열 정리 | |
| 1553 | ||
| 1554 | 1567 | }}} |
| 1555 | 1568 | |
| 1556 | 1569 | error code 03 번 : 오버플로 |
| ... | ... |