| r91 vs r92 | ||
|---|---|---|
| ... | ... | |
| 11 | 11 | 0.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도 |
| 12 | 12 | '''ru''' : "result" upper value (integer→string); '''rb''' : "result" below value (integer→string); |
| 13 | 13 | '''rp''' : "result" # of places of decimal (integer); |
| 14 | {{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0 | |
| 14 | {{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0, this.rp=0+0 | |
| 15 | 15 | }}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf(".") |
| 16 | 16 | }}}{{{#!if ad!=-1 |
| 17 | 17 | 소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기. |
| ... | ... | |
| 170 | 170 | }}}}}} |
| 171 | 171 | |
| 172 | 172 | 소수점 아래끼리 더한 자릿수가 얼마나 되는지 보기 위해 rb를 문자열로 바꿉니다. |
| 173 | 이 때 rb가 0이 아닐 경우에만 문자열로 변환합니다. | |
| 174 | {{{#!if (+rb>0)||(+rb<0) | |
| 173 | 175 | {{{#!if this.rb=rb.toString() |
| 174 | 176 | }}} |
| 175 | 177 | 문자열로 된 rb의 길이를 rp로 정의합니다. |
| 176 | 178 | {{{#!if this.rp=rb.length |
| 177 | 179 | }}} |
| 180 | }}} | |
| 178 | 181 | rb가 음수이면 rb의 첫번째(0번 index)의 문자열에는 마이너스(-)가 들어갑니다. 이 때는 rp를 rb의 마이너스 문자열을 세지 않은 자릿수가 되도록 앞에서 정의했던 rb.length에서 1만큼 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 값이 고정되어 있으므로 rp처럼 줄일 필요가 없습니다. |
| 179 | 182 | {{{#!if rb[0]==45 |
| 180 | 183 | {{{#!if rp=rp-1 |
| ... | ... |