| r269 vs r270 | ||
|---|---|---|
| ... | ... | |
| 1450 | 1450 | 여기까지가 곱셈에서 a*b 의 연산 과정이며 rb 정리 부분으로 넘어갑니다. |
| 1451 | 1451 | }}} |
| 1452 | 1452 | |
| 1453 | ##=== 나눗셈 === | |
| 1453 | 1454 | a와 b 모두 0이 아닌 경우에서 나눗셈을 연산하는 과정입니다. |
| 1454 | 1455 | {{{#!if (f=="/")&&((+au!=0)||(+ab!=0))&&((+bu!=0)||(+bb!=0)) |
| 1455 | 1456 | |
| ... | ... | |
| 5134 | 5135 | {{{#!if i=ac-bc, i>=18 |
| 5135 | 5136 | tm에서 rs를 오려낸 문자열을 tm으로 다시 둡니다. |
| 5136 | 5137 | {{{#!if rs=tm.substr(0,i-17), tm=tm.substr(i-17) |
| 5137 | }}} | |
| 5138 | rs에 순 0만을 매겼을 가능성이 있으므로 rs를 정수로 바꿉니다. | |
| 5139 | {{{#!if rs=+rs | |
| 5140 | 5138 | }}}}}} |
| 5141 | 5139 | ##ru 매기기 |
| 5142 | 5140 | i>=18 이 되(어 rs를 매기)는 경우 i를 17로 맞춥니다. |
| ... | ... | |
| 5145 | 5143 | }}}}}} |
| 5146 | 5144 | i가 0 이상 (0 이상 17 이하)이면 ru를 매길 수 있으며 문자열의 길이는 i+1이 됩니다. |
| 5147 | 5145 | {{{#!if i>=0 |
| 5148 | {{{#!if ru=tm.substr(0,i+1), tm=tm.substr(i+1) | |
| 5146 | {{{#!if ru=tm.substr(0,i+1), tm=tm.substr(i+1) | |
| 5149 | 5147 | }}}}}} |
| 5150 | 5148 | |
| 5151 | 5149 | ##rb 매기기 |
| ... | ... | |
| 5155 | 5153 | }}}}}} |
| 5156 | 5154 | i가 -18 이상 (-18 이상 -1 이하)이면 rb를 매길 수 있으며 문자열의 길이는 i+18+1 곧 i+19가 됩니다. |
| 5157 | 5155 | {{{#!if i>=-18 |
| 5158 | {{{#!if rb=tm.substr(0,i+19), tm=tm.substr(i+19), rb=rb+pd, rb=rb.substr(0,18) | |
| 5156 | {{{#!if rb=tm.substr(0,i+19), tm=tm.substr(i+19), rb=rb+pd, rb=rb.substr(0,18) | |
| 5159 | 5157 | }}}}}} |
| 5160 | 5158 | |
| 5161 | 5159 | ##ri 매기기 |
| ... | ... | |
| 5166 | 5164 | i가 -19 이하 (-36이상 -19 이하이나, i의 최소값은 -35)이면 ri를 매길 수 있습니다. |
| 5167 | 5165 | {{{#!if i>=-36 |
| 5168 | 5166 | {{{#if false |
| 5169 | {{{#!if ri=tm.substr(0,i+37), tm=tm.substr(i+37), ri=ri+pd, ri=ri.substr(0,18) | |
| 5167 | {{{#!if ri=tm.substr(0,i+37), tm=tm.substr(i+37), ri=ri+pd, ri=ri.substr(0,18) | |
| 5170 | 5168 | }}}}}} |
| 5171 | {{{#!if ri=tm.substr(0,18), tm=tm.substr(18), ri=ri+pd, ri=ri.substr(0,18) | |
| 5169 | {{{#!if ri=tm.substr(0,18), tm=tm.substr(18), ri=ri+pd, ri=ri.substr(0,18) | |
| 5172 | 5170 | }}}}}} |
| 5173 | ||
| 5174 | ||
| 5175 | ||
| 5176 | 5171 | 여기까지가 나눗셈의 계산과정입니다. |
| 5177 | 5172 | }}} |
| 5178 | 5173 | |
| 5174 | ##== 계산 결과 표시 정리하기 == | |
| 5179 | 5175 | 연산이 끝났으면 표기된 숫자를 정리합니다. |
| 5180 | 5176 | |
| 5181 | 5177 | ##ru 정리 부분 |
| 5182 | 먼저 ru를 문자열로 변환합니다. 18자리씩 끊어 표기하므로 소수점 위 19~36번째 자리에 해당하는 rs값이 (곱한 값을 더 | |
| 5178 | 먼저 (곱셈연산에서 정수값으로 나오는) ru를 문자열로 변환합니다. 18자리씩 끊어 표기하므로 소수점 위 19~36번째 자리에 해당하는 rs값이 (가령 곱셈에서, 곱한 값을 더한 결과가) 0일 경우 rs를 빈 문자열로 바꿉니다. 계산과정에서 ru의 윗자리인 rs값이 0보다 클 경우, 1~18번째 자리인 ru에 빈 자리를 채우도록 ru의 왼쪽을 0으로 채웁니다. | |
| 5183 | 5179 | {{{#!if ru=ru.toString() |
| 5184 | }}}{{{#!if rs==0 | |
| 5185 | {{{#!if rs="" | |
| 5186 | }}}}}}{{{#!if | |
| 5180 | }}}{{{#!if +rs==0 | |
| 5181 | {{{#!if rs="" | |
| 5182 | }}}}}}{{{#!if +rs>0 | |
| 5187 | 5183 | {{{#!if rs=rs.toString(), ru=pd+ru, ru=ru.substr(ru.length-18, 18) |
| 5188 | 5184 | }}}}}} |
| 5189 | 5185 | |
| ... | ... |