r220 vs r221
......
5050
}}}}}}
5151
5252
##== 유효성 검사 ==
53
the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기. 소수점 위 최대 18자리, 소수점 아래 최대 18자리
54
{{{#!if ((au[0]!=45)&&(au.length>=19))||((au[0]==45)&&(au.length>=20))
55
error code of a 01번 : 오버플로
56
{{{#!if ea=1
57
}}}}}}
58
{{{#!if ab.length>=19
59
warning code of a 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
60
{{{#!if wa=1, ab=ab.substr(0,18), ap=18
61
}}}}}}
53
the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기를 합니다. (소수점 위 최대 18자리, 소수점 아래 최대 18자리)
6254
63
{{{#!if ((bu[0]!=45)&&(bu.length>=19))||((bu[0]==45)&&(bu.length>=20))
64
error code of b 01번 : 오버플로
65
{{{#!if eb=1
66
}}}}}}
67
{{{#!if bb.length>=19
68
warning code of b 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
69
{{{#!if wb=1, bb=bb.substr(0,18), bp=18
70
}}}}}}
71
7255
(반점(,)을 자동적으로 생략하고 들어가는 것은 나중에 생각하겠습니다.)
73
{{{#!if false
56
7457
br와 ts 변수를 이용하여 순차적으로 검사를 진행합니다. 도중 문제가 있으면 (br를 true로 반환하고) 오류 코드를 내도록 만듭니다. a를 먼저 보며, 소수점 윗부분을 먼저 본 다음 소수점 아랫부분을 봅니다.
7558
변수 tm와 tn을 가져와 유효성 검사를 실행합니다.
7659
먼저 소수점을 2개 이상 입력했음이 탐지된다면 오류코드 5번(이중 소수점 표기)을 반환합니다.
......
11396
{{{#!if wa=1, ab=ab.substr(0,18), ap=18
11497
}}}}}}
11598
116
문자열에서 자릿수에 해당하는 index가 비어있다면 해당 문자열의 주소값은 null이 나옵니다. (예:"테스트"[3]==null) 숫자는 문자열 각 자릿수 문자열의 유니코드 값이 null이 아닌 이상 48 이상 57 이하이며, 이를 이용하여 소수점 아래 자리에 대해 유효성 검사를 합니다.
117
{{{#!if tm=ab
118
}}}{{{#!if tm.length>19
119
{{{#!if wa=1, ab=ab.substr(0,18), ap=18
99
앞에서 소수점 아래 자릿수를 18자 이하로 줄였습니다. 문자열에서 자릿수에 해당하는 index가 비어있다면 해당 문자열의 주소값은 null이 나옵니다. (예:"테스트"[3]==null) 숫자는 문자열 각 자릿수 문자열의 유니코드 값이 null이 아닌 이상 48 이상 57 이하이며, 이를 이용하여 소수점 아래 18자리에 대해 유효성 검사를 합니다.
100
{{{#!if ts=(((ab[0]==null)||((ab[0]>=48)&&(ab[0]<=57)))&&((ab[1]==null)||((ab[1]>=48)&&(ab[1]<=57)))&&((ab[2]==null)||((ab[2]>=48)&&(ab[2]<=57)))&&((ab[3]==null)||((ab[3]>=48)&&(ab[3]<=57)))&&((ab[4]==null)||((ab[4]>=48)&&(ab[4]<=57)))&&((ab[5]==null)||((ab[5]>=48)&&(ab[5]<=57)))&&((ab[6]==null)||((ab[6]>=48)&&(ab[6]<=57)))&&((ab[7]==null)||((ab[7]>=48)&&(ab[7]<=57)))&&((ab[8]==null)||((ab[8]>=48)&&(ab[8]<=57)))&&((ab[9]==null)||((ab[9]>=48)&&(ab[9]<=57)))&&((ab[10]==null)||((ab[10]>=48)&&(ab[10]<=57)))&&((ab[11]==null)||((ab[11]>=48)&&(ab[11]<=57)))&&((ab[12]==null)||((ab[12]>=48)&&(ab[12]<=57)))&&((ab[13]==null)||((ab[13]>=48)&&(ab[13]<=57)))&&((ab[14]==null)||((ab[14]>=48)&&(ab[14]<=57)))&&((ab[15]==null)||((ab[15]>=48)&&(ab[15]<=57)))&&((ab[16]==null)||((ab[16]>=48)&&(ab[16]<=57)))&&((ab[17]==null)||((ab[17]>=48)&&(ab[17]<=57))))
120101
}}}}}}
121
{{{#!if ts=(((au[0]==null)||((au[0]>=48)&&(au[0]<=57)))&&((au[1]==null)||((au[1]>=48)&&(au[1]<=57)))&&((au[2]==null)||((au[2]>=48)&&(au[2]<=57)))&&((au[3]==null)||((au[3]>=48)&&(au[3]<=57)))&&((au[4]==null)||((au[4]>=48)&&(au[4]<=57)))&&((au[5]==null)||((au[5]>=48)&&(au[5]<=57)))&&((au[6]==null)||((au[6]>=48)&&(au[6]<=57)))&&((au[7]==null)||((au[7]>=48)&&(au[7]<=57)))&&((au[8]==null)||((au[8]>=48)&&(au[8]<=57)))&&((au[9]==null)||((au[9]>=48)&&(au[9]<=57)))&&((au[10]==null)||((au[10]>=48)&&(au[10]<=57)))&&((au[11]==null)||((au[11]>=48)&&(au[11]<=57)))&&((au[12]==null)||((au[12]>=48)&&(au[12]<=57)))&&((au[13]==null)||((au[13]>=48)&&(au[13]<=57)))&&((au[14]==null)||((au[14]>=48)&&(au[14]<=57)))&&((au[15]==null)||((au[15]>=48)&&(au[15]<=57)))&&((au[16]==null)||((au[16]>=48)&&(au[16]<=57)))&&((au[17]==null)||((au[17]>=48)&&(au[17]<=57))))
122
}}}}}}
123102
소수점 아래 자리에 입력한 부분이 문제가 있으면 오류코드 7번(소수점 아랫자리 오류)를 반환합니다.
124103
{{{#!if !ts&&!br
125104
{{{#!if br=true, ea=7
126105
}}}}}}
127106
128
이와 같은 방법으로 b도 유효성 검사를 실행합니다.
107
이와 같은 방법으로 b도 bu를 tm으로 복제하는 과정을 포함하여 유효성 검사를 실행합니다. 오류코드는 동일합니다.
108
{{{#!if ts&&!br
109
{{{#!if ts=(bs.indexOf(".")==bs.lastIndexOf("."))
110
}}}}}}{{{#!if !ts&&!br
111
{{{#!if br=true, eb=5
112
}}}}}}
113
{{{#!if ts&&!br
114
{{{#!if tm=bu
115
}}}{{{#if tm[0]==45
116
{{{#!if tm=tm.substr(1,tm.length-1)
117
}}}}}}{{{#!if ts=(tm.length<=18)
118
}}}}}}{{{#!if !ts&&!br
119
{{{#!if br=true, eb=1
120
}}}}}}
121
{{{#!if ts&&!br
122
{{{#!if tm="1"+tm, tn=+tm, tn=tn.toString(), ts=(tm==tn)
123
}}}}}}{{{#!if !ts&&!br
124
{{{#!if br=true, eb=6
125
}}}}}}
126
{{{#!if ts&&!br
127
{{{#!if bb.length>=19
128
{{{#!if wb=1, bb=bb.substr(0,18), bp=18
129
}}}}}}{{{#!if ts=(((bb[0]==null)||((bb[0]>=48)&&(bb[0]<=57)))&&((bb[1]==null)||((bb[1]>=48)&&(bb[1]<=57)))&&((bb[2]==null)||((bb[2]>=48)&&(bb[2]<=57)))&&((bb[3]==null)||((bb[3]>=48)&&(bb[3]<=57)))&&((bb[4]==null)||((bb[4]>=48)&&(bb[4]<=57)))&&((bb[5]==null)||((bb[5]>=48)&&(bb[5]<=57)))&&((bb[6]==null)||((bb[6]>=48)&&(bb[6]<=57)))&&((bb[7]==null)||((bb[7]>=48)&&(bb[7]<=57)))&&((bb[8]==null)||((bb[8]>=48)&&(bb[8]<=57)))&&((bb[9]==null)||((bb[9]>=48)&&(bb[9]<=57)))&&((bb[10]==null)||((bb[10]>=48)&&(bb[10]<=57)))&&((bb[11]==null)||((bb[11]>=48)&&(bb[11]<=57)))&&((bb[12]==null)||((bb[12]>=48)&&(bb[12]<=57)))&&((bb[13]==null)||((bb[13]>=48)&&(bb[13]<=57)))&&((bb[14]==null)||((bb[14]>=48)&&(bb[14]<=57)))&&((bb[15]==null)||((bb[15]>=48)&&(bb[15]<=57)))&&((bb[16]==null)||((bb[16]>=48)&&(bb[16]<=57)))&&((bb[17]==null)||((bb[17]>=48)&&(bb[17]<=57))))
130
}}}}}}{{{#!if !ts&&!br
131
{{{#!if br=true, eb=7
132
}}}}}}
129133
130
}}}
131
error code 05 번 ~ : 입력한 변수는 숫자로 읽을 수 없습니다.
132
* 5번 : 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.
133
134
error code 03 번 : 0으로 나눌 수 없습니다.(아래쪽 참고)
135
136134
##== 2차 초기화 ==
137135
입력한 소수점 아래에 입력한 값을 정리합니다. 이에 따라 ap, bp값도 다시 조정됩니다.
138136
{{{#!if ap>9, ab.substr(ap-9,9)=="000000000"
......