r202 vs r203
......
13091309
여기까지가 곱셈에서 a*b 의 연산 과정이며 rb 정리 부분으로 넘어갑니다.
13101310
}}}
13111311
1312
a와 b 모두 0이 아닌 경우에서 나눗셈을 연산하는 과정입니다.
1313
{{{#!if (f=="/")&&((+au!=0)||(+ab!=0))&&((+bu!=0)||(+bb!=0))
1314
1315
au, ab, bu, bb를 18자로 만들었으므로 36자리 정수의 나눗셈으로 봅니다.
1316
a/b=(au+ab)/(bu+bb)=(+(au.substr(0,18)+ab.substr(0,18)))/(+(bu.substr(0,18)+bb.substr(0,18)))와 같습니다.
1317
rp=36이 되면 마지막 자리 연산만 하고 중단할 수 있도록 진행합니다.
1318
{{{#!if bu==0
1319
1320
}}}
1321
13121322
##ru 정리 부분
13131323
먼저 ru를 문자열로 변환합니다. 18자리씩 끊어 표기하므로 소수점 위 19~36번째 자리에 해당하는 rs값이 (곱한 값을 더했는데도) 0일 경우 rs를 빈 문자열로 바꿉니다. 곱셈과정에서 ru의 윗자리인 rs값이 0보다 클 경우, 1~18번째 자리인 ru에 빈 자리를 채우도록 ru의 왼쪽을 0으로 채웁니다.
13141324
{{{#!if ru=ru.toString()
......