| r364 vs r365 | ||
|---|---|---|
| ... | ... | |
| 59 | 59 | 변수 tm와 tn을 가져와 유효성 검사를 실행합니다. |
| 60 | 60 | 먼저 소수점을 2개 이상 입력했음이 탐지된다면 오류코드 5번(이중 소수점 표기)을 반환합니다. |
| 61 | 61 | 소수점을 입력하면 indexOf와 lastIndexOf는 서로 다른 값을 가리키게 됩니다. 소수점을 입력하지 않았을 경우 indexOf와 lastIndexOf는 -1로 서로 같은 값을 가리키게 됩니다. |
| 62 | {{{#!if ts=(as.indexOf(".")==as.lastIndexOf(".")), | |
| 63 | ||
| 64 | ||
| 65 | }}} | |
| 62 | {{{#!if ts=(as.indexOf(".")==as.lastIndexOf(".")), br=ts?br:true, ea=ts?0:5 | |
| 63 | }}} | |
| 66 | 64 | |
| 67 | 65 | 문제가 없으면 au를 tm으로 복제하고 검사를 계속 합니다. |
| 68 | 앞자리가 마이너스(-)일 경우 이를 잘라냅니다. | |
| 66 | 앞자리가 마이너스(-)일 경우 이를 잘라냅니다. 이 때 소수점 윗자릿수가 넘치면 오류코드 1번(오버플로)를 반환합니다. | |
| 69 | 67 | {{{#!if ts&&!br |
| 70 | {{{#!if tm= | |
| 71 | ||
| 68 | {{{#!if tm=(tm[0]==45)?au.substr(1):au, ts=(tm.length<=18), br=ts?br:true, ea=ts?0:1 | |
| 72 | 69 | }}}}}} |
| 73 | 소수점 윗자릿수가 넘치면 오류코드 1번(오버플로)를 반환합니다. | |
| 74 | {{{#!if ts=(tm.length<=18) | |
| 75 | }}}}}} | |
| 76 | {{{#!if !ts&&!br | |
| 77 | {{{#!if br=true, ea=1 | |
| 78 | }}}}}} | |
| 79 | 70 | |
| 80 | 71 | 의도적으로 00을 적어놓았을 수 있으므로 tm 앞에 숫자 1을 더 붙인 다음, 이를 값으로 바꾼 다음 다시 텍스트 값으로 바꾼 문자열을 tn으로 정의합니다. 중간에 숫자가 아닌 문구가 들어갔다면 숫자가 아닌 문구가 들어간 부분부터 값이 잘려 나오게 됩니다. |
| 81 | 72 | 숫자가 아닌 문구를 섞어넣었음이 탐지될 경우 오류코드 6번(소수점 윗자리 오류)을 반환합니다. (반점(,)도 걸릴 수 있습니다.) |
| 82 | 73 | {{{#!if ts&&!br |
| 83 | {{{#!if tm="1"+tm, tn=+tm, tn=tn.toString(), ts=(tm==tn) | |
| 74 | {{{#!if tm="1"+tm, tn=+tm, tn=tn.toString(), ts=(tm==tn), br=ts?br:true, ea=ts?0:6 | |
| 84 | 75 | }}}}}} |
| 85 | {{{#!if !ts&&!br | |
| 86 | {{{#!if br=true, ea=6 | |
| 87 | }}}}}} | |
| 88 | 76 | |
| 89 | 77 | 소수점 아래 부분을 검사합니다. 앞에서 소수점 개수를 검사했으므로 소수점 아래 부분에 점(.)이 더 이상 나올 수 없습니다. |
| 90 | 78 | 소수점 아래 입력한 자릿수가 19자리를 넘어가면 오류 대신 경고코드 1번(소수점 아래 자릿수 너무 많음)을 반환하고 소수점 아래 자릿수를 최대 18자리로 잘라냅니다. (이하 이상한 문구를 섞어도 이를 계산에 넣지 않게 됩니다.) |
| ... | ... | |
| 128 | 116 | }}}}}}}}} |
| 129 | 117 | |
| 130 | 118 | ##== 2차 초기화 == |
| 131 | 유효성 검사가 종료되었으면 ts와 br를 false로 초기화합니다 유효성 검사에 쓰인 tm과 tn 값을 빈 문자열 값으로 초기화합니다. | |
| 132 | {{{#!if tm="", tn="", ts=false, br=false | |
| 119 | 유효성 검사가 종료되었으면 ts와 br, ps를 false로 초기화합니다 유효성 검사에 쓰인 tm과 tn 값을 빈 문자열 값으로 초기화합니다. | |
| 120 | {{{#!if tm="", tn="", ts=false, br=false, ps=false | |
| 133 | 121 | }}} |
| 134 | 122 | |
| 135 | 123 | 입력한 소수점 아래에 입력한 값을 정리합니다. 이에 따라 ap, bp값도 다시 조정됩니다. |
| ... | ... |