r165 vs r166
......
442442
18자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
443443
다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
444444
445
음수가 될 경우 소수점 윗부분 문자열은 "-" 기호가 붙으므로, 이것을 이용한 조건문을 하나 만들어 a와 b 둘의 부호가 서로 다를 경우 (a만 음수이거나 b가 음수일 경우) 계산 결과에 부호를 표시할 수 있게 만듭니다.
446
{{{#!if (au[0]==45)^(bu[0]==45)
447
{{{#!if ns="-"
448
}}}}}}
445449
a 또는 b가 음수가 될 경우 소수점 윗부분 문자열인 au 또는 bu에서 마이너스(-)를 제거합니다.
446450
{{{#!if au[0]==45
447451
{{{#!if au=au.substr(1,ad-1)
......
450454
{{{#!if bu=bu.substr(1,bd-1)
451455
}}}}}}
452456
453
a 또는 b값이 0이 되려면 au, ab 둘 다 0이 되거나 bu, bb 둘 다 0이 되어야 합니다.
457
a 또는 b값이 0이 되려면 au, ab 둘 다 0이 되거나 bu, bb 둘 다 0이 되어야 합니다. a 또는 b 값이 0일 경우 음수 부호를 표시하지 않습니다.
454458
{{{#!if ((+au==0)&&(+ab!=0))||((+bu==0)&&(+bb==0))
455
{{{#!if rs="", ru="0", rb="", ri="", rp=0
459
{{{#!if rs="", ru="0", rb="", ri="", rp=0, ns=""
456460
}}}}}}
457461
0을 곱하면 0이 되므로, a와 b 모두 0이 아닌 값을 곱할 때를 봅니다.
458462
{{{#!if ((+au!=0)||(+ab!=0))&&((+bu!=0)||(+bb!=0))
......