| r132 vs r133 | ||
|---|---|---|
| ... | ... | |
| 21 | 21 | {{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0, this.rp=0+0, this.i=0+0, this.tv=1, this.ea=0+0, this.eb=0+0, this.wa=0+0, this.wb=0+0 |
| 22 | 22 | }}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf("."), this.rs="", this.ri="" |
| 23 | 23 | }}}{{{#!if ad!=-1 |
| 24 | 소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기. | |
| 24 | 소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기합니다. | |
| 25 | 25 | {{{#!if this.au=as.substr(0,ad), this.ab=as.substr(ad+1, al-ad-1), this.ap=ab.length |
| 26 | 26 | }}}{{{#!if (au=="")||(au=="-")||(au=="+") |
| 27 | 27 | .12345 식으로 또는 -.12345 식으로 기입할 경우 upper 값을 0으로 부여합니다. |
| 28 | 28 | {{{#!if au="0" |
| 29 | 29 | }}}}}}}}}{{{#!if ad==-1 |
| 30 | 소수점이 존재하지 않을 경우 au 문자열 길이값을 ad로 정의합니다. | |
| 30 | 소수점이 존재하지 않을 경우 au 문자열 길이값을 ad로 정의합니다. au의 마지막 문자열 index는 ad-1이 됩니다. | |
| 31 | 31 | {{{#!if this.au=as, ab="", ap=0+0, ad=au.length |
| 32 | 32 | }}}}}}{{{#!if bd!=-1 |
| 33 | 33 | {{{#!if this.bu=bs.substr(0,bd), this.bb=bs.substr(bd+1, bl-bd-1), this.bp=bb.length |
| ... | ... | |
| 500 | 500 | 18자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다. |
| 501 | 501 | 다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다. |
| 502 | 502 | |
| 503 | a 또는 b가 음수가 될 경우 소수점 윗부분 문자열인 au 또는 bu에서 마이너스(-)를 제거합니다. | |
| 504 | {{{#!if au[0]==45 | |
| 505 | {{{#!if au=au.substr(1,ad-1) | |
| 506 | }}}}}} | |
| 507 | {{{#!if bu[0]==45 | |
| 508 | {{{#!if bu=bu.substr(1,bd-1) | |
| 509 | }}}}}} | |
| 510 | ||
| 503 | 511 | 소수점 아래 자리가 존재하는 경우 소수점 아래 자리를 먼저 연산합니다. 그렇지 않은 경우 소수점 윗부분을 연산합니다. |
| 504 | 512 | {{{#!if (ap>0)||(bp>0) |
| 505 | 513 | |
| ... | ... | |
| 513 | 521 | ap+bp 값이 18 이하일 경우 그 값을 i로 둡니다. |
| 514 | 522 | {{{#!if ap+bp<=18 |
| 515 | 523 | {{{#!if i=ap+bp |
| 516 | }}}}}} | |
| 524 | }}}}}}}}} | |
| 517 | 525 | 18자리씩 곱셈계산을 할 수 있도록 입력했던 a와 b의 문자열을 확장할 것입니다. |
| 518 | 526 | a와 b 각각 소수점 윗자리와 소수점 아래자리의 문자열의 빈 공간을 0으로 채워 18자로 만듭니다. |
| 519 | 527 | 소수점 윗자리는 왼쪽에서 0을 채워나갑니다. |
| ... | ... | |
| 600 | 608 | 소수점 아래자리는 오른쪽에서 0을 채웁니다. (ap, bp값은 보존됩니다.) |
| 601 | 609 | |
| 602 | 610 | }}} |
| 603 | }}} | |
| 604 | 611 | |
| 605 | 612 | error code 03 번 : 오버플로 |
| 606 | 613 | error code 04 번 : 언더플로 |
| ... | ... |