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