r350 vs r351
......
15111511
bu, bb를 각각 tw만큼 곱한 값을 tx, ty로 정의합니다.
15121512
{{{#!if tx=bu*tw, ty=bb*tw
15131513
}}}
1514
이 때 ty가 19자리가 되면 넘친 첫번째 자리의 값을 tx의 일의 자리로 더하고 아래 18자리의 값을 ty로 다시 정의합니다. tx는 19자리 숫자가 되어도 문제가 없습니다. 그 다음 ty를 정수로 바꿉니다.
1514
이 때 ty가 19자리가 되면 넘친 첫번째 자리의 값을 tx의 일의 자리로 더하고 아래 18자리의 값을 ty로 다시 정의합니다. tx는 19자리 숫자가 되어도 문제가 없습니다. 만일 ty가 19자리가 되지 않는다면 tx와 ty를 대로 둡니. 그 다음 ty를 정수로 바꿉니다.
15151515
{{{#!if ty=ty.toString(), tx=(ty.length==19)?tx+(+ty.substr(0,1)):tx, ty=(ty.length==19)?ty=ty.substr(1,18):ty, ty=+ty
15161516
}}}
15171517
이렇게 하면 tx=bu*tw<=au가 됩니다. (bu가 au보다 크면 tw는 tw의 정의에서 값이 0이 되므로 부등호가 성립됩니다.)
......
15431543
au, ab를 문자열로 다시 바꿉니다.
15441544
{{{#!if au=au.toString(), ab=ab.toString()
15451545
}}}
1546
tn을 빈 문자열로 초기화합니다. 그리고 역할을 다 한 ps를 false로 초기화합니다. 그 다음 au가 여전히 18자리 숫자일 경우 au의 첫번째 자리를 분리해 내어 tn으로 정의니다. 여기서 ps는 au의 길이에 따른 리가 겹쳐 않게 만듭니다.
1547
{{{#!if ps=false, tn="", au.length==18
1548
{{{#!if tn=au.substr(0,1), au=au.substr(1,17), ps=true
1549
}}}}}}
1550
au가 17자리 미만의 숫자가 되었다면 au의 왼쪽을 0으로 채워 18자리 숫자로 만듭니다.
1551
{{{#!if !ps&&(au.length<17)
1552
{{{#!if au=pd+au, au=au.substr(au.length-17,17)
1553
}}}}}}
1546
tn을 빈 문자열로 초기화합니다. au가 여전히 18자리 숫자일 경우 au의 첫번째 자리를 분리해 내어 tn으로 정의하고 나머지 17자리를 au로 둡니다. 그렇지 않을 경우 (au가 17자리 미만숫자가 되었다면) tn은 빈 문자열 그대로 두고 au의 왼쪽을 0(pd)으로 채운 다음 (적어도 19자리가 되는 문자열을) 뒤에서 17번째 자리부터 가 au로 만듭니다.
1547
{{{#!if ps=false, tn="", tn=(au.length==18)?au.substr(0,1):"", au=(au.length==18)?au=au.substr(1,17):(pd+au).substr(-17)
1548
}}}
15541549
ab가 18자리 미만의 숫자가 되었다면 왼쪽을 0으로 채워 18자리 숫자로 만듭니다.
1555
{{{#!if ab.length<18
1556
{{{#!if ab=pd+ab, ab=ab.substr(ab.length-18,18)
1557
}}}}}}
1550
{{{#!if ab=(ab.length<18)?(pd+ab).substr(-18):ab
1551
}}}
15581552
au의 뒤로 ab의 처음 자리를 끌어옵니다.
15591553
{{{#!if au+=ab.substr(0,1)
15601554
}}}
......