r86
r43
1[[분류:냥]][Include(틀:상세 내용, 설명대상=원본, 문서명=틀\:계산기)]
r44
2== 2-2 ==
r83
3{{{#!wiki style="display: none;"
r59
4##초기화
r55
5'''as''' : "a" value to string; '''bs''' : "b" value to string;
r56
6'''al''' : "a" string length (integer); '''bl''' : "b" string length (integer)
7'''ad''' : "a" decimal point (integer); '''bd''' : "b" decimal point (integer);
8'''au''' : --gold-- "a" upper value (string→integer); '''bu''' : "b" upper value (string→integer);
9'''ab''' : "a" below value (string→integer); '''bb''' : "b" below value (string→integer);
r55
10'''ap''' : "a" # of places of decimal (integer); '''bp''' : "b" # of places of decimal (integer);
110.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도
r78
12'''ru''' : "result" upper value (integer→string); '''rb''' : "result" below value (integer→string);
13'''rp''' : "result" # of places of decimal (integer);
r66
14{{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0
r53
15}}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf(".")
16}}}{{{#!if ad!=-1
r56
17소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기.
18{{{#!if this.au=as.substr(0,ad), this.ab=as.substr(ad+1, al-ad-1), this.ap=ab.length
r64
19}}}{{{#!if (au=="")||(au=="-")||(au=="+")
r58
20.12345 식으로 또는 -.12345 식으로 기입할 경우 upper 값을 0으로 부여함.
r62
21{{{#!if au="0"
r56
22}}}}}}}}}{{{#!if ad==-1
r53
23{{{#!if this.au=as, ab="", ap=0+0
24}}}}}}{{{#!if bd!=-1
r56
25{{{#!if this.bu=bs.substr.(0,bd), this.bb=bs.substr(bd+1, bl-bd-1), this.bp=bb.length
r64
26}}}{{{#!if (bu=="")||(bu=="-")||(bu=="+")
r62
27{{{#!if bu="0"
r53
28}}}}}}}}}{{{#!if bd==-1
29{{{#!if this.bu=bs, bb="", bp=0+0
r51
30}}}}}}
r59
31
r61
32##유효성 검사.
33the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기. 소수점 위 최대 18자리, 소수점 아래 최대 18자리
r62
34{{{#!if au.length>19
r61
35error code of a 01번 : 오버플로
r62
36{{{#!if ea=1
r61
37}}}}}}
r62
38{{{#!if ab.length>19
r64
39warning code of a 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r62
40{{{#!if wa=1, ab=ab.substr(0,18)
41}}}}}}
r60
42
r62
43{{{#!if bu.length>19
44error code of b 01번 : 오버플로
45{{{#!if eb=01
46}}}}}}
r63
47{{{#!if bb.length>19
r65
48warning code of b 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r63
49{{{#!if wb=01, bb=bb.substr(0,18)
r62
50}}}}}}
51
r64
52##반점(,)을 자동적으로 생략하고 들어가는 것은 나중에 생각하겠습니다.
53error code 02 번 : 입력한 변수는 숫자로 읽을 수 없습니다. 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.
r71
54
55덧셈과 뺄셈 계산과정을 적어봅니다.
56{{{#!if (f=="+")||(f=="-")
r81
57
58a과 b의 소수점 윗부분은 정수이므로 쉽게 계산할 수 있습니다.
59{{{#!if f=="+"
60{{{#!if ru=(+au)+(+bu)
61}}}}}}
62{{{#!if f=="-"
63{{{#!if ru=(+au)-(+bu)
64}}}}}}
65
66a와 b 모두가 정수이면 ad=a.indexOf("."), bd=b.indexOf(".") 모두 -1이고 ap==0, bp==0이 되며, 이런 경우에는 소수점 아래 자릿수를 검산할 필요가 없습니다. a와 b 중 소수점 아래 자릿수가 있는 수가 있을 때에만 소수점 윗자리의 계산값이 얼마가 나오느냐를 보면서 소수점 아래의 자릿수를 정리하는 과정이 의미가 있습니다.
67{{{#!if (ap>0)||(bp>0)
68만약 소수점 아래를 계산한다면 자릿수를 똑같이 맞춰야 의미가 있으므로, 자릿수가 다른 경우 자릿수가 같게 만드는 과정을 먼저 거칩니다.
r71
69{{{#!if ap>bp
r72
70이를테면 a의 소수점 자릿수가 b의 소수점 자릿수보다 많으면 b뒤에 0을 더 추가하는 방식으로 변경합니다. b 자체가 정수여도 앞에 (소수점이 없을 경우) 이미 bb="", bp=0+0으로 초기화했으므로 동작될 것입니다.
r71
71{{{#!if bp+=1, bb=bb+"0"
r72
72}}}}}}{{{#!if ap>bp
73{{{#!if bp+=1, bb=bb+"0"
74}}}}}}{{{#!if ap>bp
75{{{#!if bp+=1, bb=bb+"0"
76}}}}}}{{{#!if ap>bp
77{{{#!if bp+=1, bb=bb+"0"
78}}}}}}{{{#!if ap>bp
79{{{#!if bp+=1, bb=bb+"0"
r71
80}}}}}}
r72
81{{{#!if ap>bp
82{{{#!if bp+=1, bb=bb+"0"
83}}}}}}{{{#!if ap>bp
84{{{#!if bp+=1, bb=bb+"0"
85}}}}}}{{{#!if ap>bp
86{{{#!if bp+=1, bb=bb+"0"
87}}}}}}{{{#!if ap>bp
88{{{#!if bp+=1, bb=bb+"0"
89}}}}}}{{{#!if ap>bp
90{{{#!if bp+=1, bb=bb+"0"
91}}}}}}
92{{{#!if ap>bp
93{{{#!if bp+=1, bb=bb+"0"
94}}}}}}{{{#!if ap>bp
95{{{#!if bp+=1, bb=bb+"0"
96}}}}}}{{{#!if ap>bp
97{{{#!if bp+=1, bb=bb+"0"
98}}}}}}{{{#!if ap>bp
99{{{#!if bp+=1, bb=bb+"0"
100}}}}}}{{{#!if ap>bp
101{{{#!if bp+=1, bb=bb+"0"
102}}}}}}
103{{{#!if ap>bp
104{{{#!if bp+=1, bb=bb+"0"
105}}}}}}{{{#!if ap>bp
106{{{#!if bp+=1, bb=bb+"0"
107}}}}}}{{{#!if ap>bp
108{{{#!if bp+=1, bb=bb+"0"
109}}}}}}
r74
110소수점 아래 최대 18자리까지의 수를 취급하므로 최대 18회.
r72
111
112반대로 b의 소수점 자릿수가 많은 경우도 있습니다.
113{{{#!if bp>ap
114{{{#!if ap+=1, ab=ab+"0"
115}}}}}}{{{#!if bp>ap
116{{{#!if ap+=1, ab=ab+"0"
117}}}}}}{{{#!if bp>ap
118{{{#!if ap+=1, ab=ab+"0"
119}}}}}}{{{#!if bp>ap
120{{{#!if ap+=1, ab=ab+"0"
121}}}}}}{{{#!if bp>ap
122{{{#!if ap+=1, ab=ab+"0"
123}}}}}}
124{{{#!if bp>ap
125{{{#!if ap+=1, ab=ab+"0"
126}}}}}}{{{#!if bp>ap
127{{{#!if ap+=1, ab=ab+"0"
128}}}}}}{{{#!if bp>ap
129{{{#!if ap+=1, ab=ab+"0"
130}}}}}}{{{#!if bp>ap
131{{{#!if ap+=1, ab=ab+"0"
132}}}}}}{{{#!if bp>ap
133{{{#!if ap+=1, ab=ab+"0"
134}}}}}}
135{{{#!if bp>ap
136{{{#!if ap+=1, ab=ab+"0"
137}}}}}}{{{#!if bp>ap
138{{{#!if ap+=1, ab=ab+"0"
139}}}}}}{{{#!if bp>ap
140{{{#!if ap+=1, ab=ab+"0"
141}}}}}}{{{#!if bp>ap
142{{{#!if ap+=1, ab=ab+"0"
143}}}}}}{{{#!if bp>ap
144{{{#!if ap+=1, ab=ab+"0"
145}}}}}}
146{{{#!if bp>ap
147{{{#!if ap+=1, ab=ab+"0"
148}}}}}}{{{#!if bp>ap
149{{{#!if ap+=1, ab=ab+"0"
150}}}}}}{{{#!if bp>ap
151{{{#!if ap+=1, ab=ab+"0"
152}}}}}}
r76
153위의 과정을 거치게 되면 소수점 아래 최대 자릿수를 똑같이 맞춘 상태에서 계산하게 되므로 ap==bp가 됩니다.
r71
154
r76
155a가 음수인 경우 소수점 아래 값은 순 숫자만 표기된 상태이므로 양수 취급으로 되지 않게 소수점 아래 값인 ab에 음수 표기를 남깁니다.
r73
156{{{#!if as[0]==45
157{{{#!if ab="-"+ab
158}}}}}}
r76
159마찬가지로 b가 음수인 경우 b의 소수점 아래 값은 음수이므로 소수점 아래 값인 bb에 음수 표기를 남깁니다.
r73
160{{{#!if bs[0]==45
161{{{#!if bb="-"+bb
162}}}}}}
163
r81
164이때 rb를 계산합니다.
r70
165{{{#!if f=="+"
r81
166{{{#!if rb=(+ab)+(+bb)
r70
167}}}}}}
168{{{#!if f=="-"
r81
169{{{#!if rb=(+ab)-(+bb)
r70
170}}}}}}
r80
171
r74
172소수점 아래끼리 더한 자릿수가 얼마나 되는지 보기 위해 rb를 문자열로 바꿉니다.
173{{{#!if this.rb=rb.toString()
174}}}
r76
175문자열로 된 rb의 길이를 rp로 정의합니다.
r74
176{{{#!if this.rp=rb.length
177}}}
r78
178rb가 음수이면 rb의 첫번째(0번 index)의 문자열에는 마이너스(-)가 들어갑니다. 이 때는 rp를 rb의 마이너스 문자열을 세지 않은 자릿수가 되도록 앞에서 정의했던 rb.length에서 1만큼 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 값이 고정되어 있으므로 rp처럼 줄일 필요가 없습니다.
r74
179{{{#!if rb[0]==45
r75
180{{{#!if rp=rp-1
r74
181}}}}}}
r62
182
r80
183Case 1 : ru가 0보다 큰 경우
r76
184ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다.
r70
185{{{#!if ru>0
r80
186Case 1-1 : rb가 0 이상인 경우
r76
187{{{#!if +rb>=0
r78
188rb가 소수점 아래 자릿수를 초과하여 소수점 위의 수를 계산하게 생겼다면 ap=bp인 상황에서 rp>ap가 됩니다. rb는 첫 숫자가 1인 정수가 되므로 첫 숫자인 1을 삭제한 문자열로 정의합니다.
r76
189{{{#!if rp>ap
190{{{#!if ru=ru+1, rb=rb.substr(1, rp-1)
r74
191}}}}}}
r78
192rb가 소수점 아래 자릿수를 초과하지 않을 경우 rb를 다시 정의할 필요 없이 그대로 둡니다.
r76
193{{{#!if rp<=ap
r77
194}}}
r78
195}}}
196
r80
197Case 1-2 : rb가 음수가 되는 경우 ru에서 1을 빌려옵니다. 1보다 작은 값에서 1보다 작은 값을 빼므로 -1보다 작을 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다.
r78
198{{{#!if +rb<0
199{{{#!if ru=ru-1
200}}}
r80
201rb의 자릿수인 rp만큼 10을 제곱한 값으로 rb를 재정의합니다. 그러면 rb는 양수가 되며, rb를 다시 문자열로 변환합니다.
202{{{#!if rb=10**rp+(+rb)
r78
203}}}{{{#!if rb=rb.toString()
204}}}
205}}}
r80
206
r78
207정리과정을 끝냈으면 ru를 string으로 변환합니다.
208{{{#!if this.ru=ru.toString()
r76
209}}}}}}
210
r80
211Case 2 : ru가 0인 경우 ru가 0이 되면 rb의 값이 양수인지 음수인지에 따라 달라집니다.
r70
212{{{#!if ru==0
r80
213Case 2-1 : rb가 0 이상인 경우
r78
214{{{#!if +rb>=0
215rb가 양수이면서 rb가 자릿수를 초과한 경우 rb는 첫 숫자가 1인 정수가 되므로 첫 숫자인 1을 삭제한 문자열로 정의합니다.
216{{{#!if rp>ap
217{{{#!if ru=ru+1, rb=rb.substr(1, rp-1)
218}}}}}}}}}
r80
219Case 2-2 : rb가 음수인 경우
r78
220{{{#!if +rb<0
r80
221rb가 음수이면서 rb가 자릿수를 초과한 경우 값이 0인 ru에 1을 빼야 합니다. 그리고 rb가 "-"+숫자 꼴이므로 문자열의 1번 index에 해당하는 1을 지워야 합니다. 앞에서 rb가 음수인 경우 rp는 rb의 마이너스(-)가 차지하는 자릿수를 계산하지 않은 값 곧 숫자들이 차지하는 자릿수이므로, rb를 길이가 rp-1인 숫자들로 다시 정의합니다.
r78
222{{{#!if rp>ap
r80
223{{{#!if ru=ru-1, rb=rb.substr(2, rp-1)
224}}}}}}
225rb가 자릿수를 초과하지 않은 경우 rb에서 "-"를 뺀 문자열로 rb를 다시 정의합니다.
226{{{#if rp==ap
r81
227{{{#!if rb=rb.substr(1, rp)
r78
228}}}}}}}}}
229정리과정을 끝냈으면 ru를 string으로 변환합니다.
230{{{#!if this.ru=ru.toString()
r70
231}}}
r80
232-0.xxxx 같이 (ru==0인데) 연산결과가 -1보다 큰 음수로 나오는 경우 ru 문자열 앞에 "-"를 붙입니다.
233f가 "+"인지 "-"인지에 따라 처음 rb를 정의할 때 적었던 식을 다시 불러옵니다.
234{{{#!if ((f=="+")&&((+ab)+(+bb)<0))||((f=="-")&&((+ab)-(+bb)<0))
235{{{#!if ru="-"+ru
236}}}}}}
r78
237}}}
r79
238
r80
239Case 3 : ru가 0보다 작은 경우. 곧 -1 이하인 음수가 되는 경우.
r70
240{{{#!if ru<0
r81
241Case 3-1 : rb가 0 이하인 경우
242{{{#!if +rb<=0
243rb가 음수이면서 자릿수를 초과한 경우 ru에 -1을 빼고, rb의 음수기호(-)와 첫번째 숫자인 문자열 "1"을 뺀 문자열로 rb를 다시 정의합니다.
244{{{#!if rp>ap
r86
245{{{#!if rb=rb.substr(2, rp-1)
r70
246}}}
r86
247}}}
r81
248rb가 자릿수를 초과하지 않은 경우 음수기호만을 뺀 문자열로 다시 정의합니다. 단, rb가 0이 되면 rp==1이 되므로 rb==0인 경우는 제외합니다.
249{{{#!if (rp==ap)&&(+rb<0)
250{{{#!if rb=rb.substr(1, rp-1)
251}}}}}}}}}
252Case 3-2 : rb가 0보다 큰 경우
253{{{#!if +rb>0
254
r80
255}}}
r81
256정리과정을 끝냈으면 ru를 string으로 변환합니다.
257{{{#!if this.ru=ru.toString()
258}}}
259-0.xxxx 같이 (ru==0인데) 연산결과가 -1보다 큰 음수로 나오는 경우가 된다면 ru 문자열 앞에 "-"를 붙입니다.
260{{{#!if +ru==0
261{{{#!if ru="-"+ru
262}}}}}}
263}}}
264여기까지가 소수점 아래 자릿수 숫자들의 계산과정입니다.
265}}}
r76
266
r81
267여기까지가 덧셈 또는 뺄셈연산의 계산과정입니다.
268}}}
269
r67
270{{{#!if f=="*"
r69
27118자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
272다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
r67
273}}}
274
r65
275error code 03 번 : 오버플로
276error code 04 번 : 언더플로
277error code 05 번 : 0으로 나눌 수 없습니다.
r64
278
r67
279##여기까지 주석(주석 아님)
r86
280}}}{{{#!wiki style="font-weight: 300; font-size: 20px;"
r82
281{{{#!if as[0]!=45
r53
282@a@}}}{{{#!if as[0]==45
283(@a@)}}}{{{#!if f=='+'
r67
284+}}}{{{#!if f=="-"
285-}}}{{{#!if f=="*"
286*}}}{{{#!if f=="/"
287/}}}{{{#!if bs[0]!=45
r53
288@b@}}}{{{#!if bs[0]==45
r57
289(@b@)}}}}}}
r44
290==# 2-1 #==
291{{{#!wiki style="font-weight: 300; font-size: 20px"
r37
292{{{#!if +a>=0
293@a@}}}{{{#!if +a<0
r36
294(@a@)}}} {{{#!if f == '+'
r40

(r37으로 되돌림)
295{{{#!if r =(+a)+(+b)+0.0, u=(+a)+(+b)
r7

(r5으로 되돌림)
296}}}+}}}{{{#!if f == '-'
r40

(r37으로 되돌림)
297{{{#!if r =(+a)-(+b)+0.0, u=(+a)-(+b)
r7

(r5으로 되돌림)
298}}}-}}}{{{#!if f == '*'
r40

(r37으로 되돌림)
299{{{#!if r =((+a)+0.0)*((+b)+0.0), u=(+a)*(+b)
r7

(r5으로 되돌림)
300}}}×}}}{{{#!if f == '/'
r40

(r37으로 되돌림)
301{{{#!if r =((+a)+0.0)/((+b)+0.0), u=(+a)/(+b)
r37
302}}}÷}}} {{{#!if +b>=0
303@b@}}}{{{#!if +b<0
r36
304(@b@)}}} = {{{#!if u=r-u, d=false
r18

(r16으로 되돌림)
305##u : 나누어떨어지는 부분 절삭하기. d : dot 매김 여부
r20
306}}}{{{#!if r=r.toString(), u=u.toString()
r10
307}}}{{{#!if o=0, l=r.length
r11
308}}}{{{#!if (r!=null)&&(r!="")
309{{{#!if +o<l
r18

(r16으로 되돌림)
310##1
r11
311{{{#!if p=r[o]
r9
312}}}{{{#!if p==45
313-}}}{{{#!if p==46
r14
314{{{#!if d=true
r20
315}}}}}}{{{#!if p==48
r9
3160}}}{{{#!if p==49
3171}}}{{{#!if p==50
3182}}}{{{#!if p==51
3193}}}{{{#!if p==52
3204}}}{{{#!if p==53
3215}}}{{{#!if p==54
3226}}}{{{#!if p==55
3237}}}{{{#!if p==56
3248}}}{{{#!if p==57
r41
3259}}}{{{#!if o+=1
r19
326}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
327##2
r11
328{{{#!if p=r[o]
r35
329}}}{{{#!if p==46
r14
330{{{#!if d=true
r20
331}}}}}}{{{#!if p==48
r9
3320}}}{{{#!if p==49
3331}}}{{{#!if p==50
3342}}}{{{#!if p==51
3353}}}{{{#!if p==52
3364}}}{{{#!if p==53
3375}}}{{{#!if p==54
3386}}}{{{#!if p==55
3397}}}{{{#!if p==56
3408}}}{{{#!if p==57
r41
3419}}}{{{#!if o+=1
r23
342}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
343##3
r11
344{{{#!if p=r[o]
r35
345}}}{{{#!if p==46
r14
346{{{#!if d=true
r20
347}}}}}}{{{#!if p==48
r9
3480}}}{{{#!if p==49
3491}}}{{{#!if p==50
3502}}}{{{#!if p==51
3513}}}{{{#!if p==52
3524}}}{{{#!if p==53
3535}}}{{{#!if p==54
3546}}}{{{#!if p==55
3557}}}{{{#!if p==56
3568}}}{{{#!if p==57
r41
3579}}}{{{#!if o+=1
r23
358}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
359##4
r11
360{{{#!if p=r[o]
r35
361}}}{{{#!if p==46
r14
362{{{#!if d=true
r20
363}}}}}}{{{#!if p==48
r9
3640}}}{{{#!if p==49
3651}}}{{{#!if p==50
3662}}}{{{#!if p==51
3673}}}{{{#!if p==52
3684}}}{{{#!if p==53
3695}}}{{{#!if p==54
3706}}}{{{#!if p==55
3717}}}{{{#!if p==56
3728}}}{{{#!if p==57
r41
3739}}}{{{#!if o+=1
r23
374}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
375##5
r11
376{{{#!if p=r[o]
r35
377}}}{{{#!if p==46
r14
378{{{#!if d=true
r20
379}}}}}}{{{#!if p==48
r9
3800}}}{{{#!if p==49
3811}}}{{{#!if p==50
3822}}}{{{#!if p==51
3833}}}{{{#!if p==52
3844}}}{{{#!if p==53
3855}}}{{{#!if p==54
3866}}}{{{#!if p==55
3877}}}{{{#!if p==56
3888}}}{{{#!if p==57
r41
3899}}}{{{#!if o+=1
r23
390}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
391##6
r11
392{{{#!if p=r[o]
r35
393}}}{{{#!if p==46
r14
394{{{#!if d=true
r20
395}}}}}}{{{#!if p==48
r9
3960}}}{{{#!if p==49
3971}}}{{{#!if p==50
3982}}}{{{#!if p==51
3993}}}{{{#!if p==52
4004}}}{{{#!if p==53
4015}}}{{{#!if p==54
4026}}}{{{#!if p==55
4037}}}{{{#!if p==56
4048}}}{{{#!if p==57
r41
4059}}}{{{#!if o+=1
r23
406}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
407##7
r11
408{{{#!if p=r[o]
r35
409}}}{{{#!if p==46
r14
410{{{#!if d=true
r20
411}}}}}}{{{#!if p==48
r9
4120}}}{{{#!if p==49
4131}}}{{{#!if p==50
4142}}}{{{#!if p==51
4153}}}{{{#!if p==52
4164}}}{{{#!if p==53
4175}}}{{{#!if p==54
4186}}}{{{#!if p==55
4197}}}{{{#!if p==56
4208}}}{{{#!if p==57
r41
4219}}}{{{#!if o+=1
r23
422}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
423##8
r11
424{{{#!if p=r[o]
r35
425}}}{{{#!if p==46
r14
426{{{#!if d=true
r20
427}}}}}}{{{#!if p==48
r9
4280}}}{{{#!if p==49
4291}}}{{{#!if p==50
4302}}}{{{#!if p==51
4313}}}{{{#!if p==52
4324}}}{{{#!if p==53
4335}}}{{{#!if p==54
4346}}}{{{#!if p==55
4357}}}{{{#!if p==56
4368}}}{{{#!if p==57
r41
4379}}}{{{#!if o+=1
r23
438}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
439##9
r11
440{{{#!if p=r[o]
r35
441}}}{{{#!if p==46
r14
442{{{#!if d=true
r20
443}}}}}}{{{#!if p==48
r9
4440}}}{{{#!if p==49
4451}}}{{{#!if p==50
4462}}}{{{#!if p==51
4473}}}{{{#!if p==52
4484}}}{{{#!if p==53
4495}}}{{{#!if p==54
4506}}}{{{#!if p==55
4517}}}{{{#!if p==56
4528}}}{{{#!if p==57
r41
4539}}}{{{#!if o+=1
r23
454}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
455##10
r11
456{{{#!if p=r[o]
r35
457}}}{{{#!if p==46
r14
458{{{#!if d=true
r20
459}}}}}}{{{#!if p==48
r9
4600}}}{{{#!if p==49
4611}}}{{{#!if p==50
4622}}}{{{#!if p==51
4633}}}{{{#!if p==52
4644}}}{{{#!if p==53
4655}}}{{{#!if p==54
4666}}}{{{#!if p==55
4677}}}{{{#!if p==56
4688}}}{{{#!if p==57
r41
4699}}}{{{#!if o+=1
r23
470}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
471##11
r11
472{{{#!if p=r[o]
r35
473}}}{{{#!if p==46
r14
474{{{#!if d=true
r20
475}}}}}}{{{#!if p==48
r9
4760}}}{{{#!if p==49
4771}}}{{{#!if p==50
4782}}}{{{#!if p==51
4793}}}{{{#!if p==52
4804}}}{{{#!if p==53
4815}}}{{{#!if p==54
4826}}}{{{#!if p==55
4837}}}{{{#!if p==56
4848}}}{{{#!if p==57
r41
4859}}}{{{#!if o+=1
r23
486}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
487##12
r11
488{{{#!if p=r[o]
r35
489}}}{{{#!if p==46
r14
490{{{#!if d=true
r20
491}}}}}}{{{#!if p==48
r9
4920}}}{{{#!if p==49
4931}}}{{{#!if p==50
4942}}}{{{#!if p==51
4953}}}{{{#!if p==52
4964}}}{{{#!if p==53
4975}}}{{{#!if p==54
4986}}}{{{#!if p==55
4997}}}{{{#!if p==56
5008}}}{{{#!if p==57
r41
5019}}}{{{#!if o+=1
r23
502}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
503##13
r11
504{{{#!if p=r[o]
r35
505}}}{{{#!if p==46
r14
506{{{#!if d=true
r20
507}}}}}}{{{#!if p==48
r9
5080}}}{{{#!if p==49
5091}}}{{{#!if p==50
5102}}}{{{#!if p==51
5113}}}{{{#!if p==52
5124}}}{{{#!if p==53
5135}}}{{{#!if p==54
5146}}}{{{#!if p==55
5157}}}{{{#!if p==56
5168}}}{{{#!if p==57
r41
5179}}}{{{#!if o+=1
r23
518}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
519##14
r11
520{{{#!if p=r[o]
r35
521}}}{{{#!if p==46
r14
522{{{#!if d=true
r20
523}}}}}}{{{#!if p==48
r9
5240}}}{{{#!if p==49
5251}}}{{{#!if p==50
5262}}}{{{#!if p==51
5273}}}{{{#!if p==52
5284}}}{{{#!if p==53
5295}}}{{{#!if p==54
5306}}}{{{#!if p==55
5317}}}{{{#!if p==56
5328}}}{{{#!if p==57
r41
5339}}}{{{#!if o+=1
r23
534}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
535##15
r11
536{{{#!if p=r[o]
r35
537}}}{{{#!if p==46
r14
538{{{#!if d=true
r20
539}}}}}}{{{#!if p==48
r9
5400}}}{{{#!if p==49
5411}}}{{{#!if p==50
5422}}}{{{#!if p==51
5433}}}{{{#!if p==52
5444}}}{{{#!if p==53
5455}}}{{{#!if p==54
5466}}}{{{#!if p==55
5477}}}{{{#!if p==56
5488}}}{{{#!if p==57
r41
5499}}}{{{#!if o+=1
r23
550}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
551##16
r11
552{{{#!if p=r[o]
r35
553}}}{{{#!if p==46
r14
554{{{#!if d=true
r20
555}}}}}}{{{#!if p==48
r9
5560}}}{{{#!if p==49
5571}}}{{{#!if p==50
5582}}}{{{#!if p==51
5593}}}{{{#!if p==52
5604}}}{{{#!if p==53
5615}}}{{{#!if p==54
5626}}}{{{#!if p==55
5637}}}{{{#!if p==56
5648}}}{{{#!if p==57
r41
5659}}}{{{#!if o+=1
r23
566}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
567##17
r11
568{{{#!if p=r[o]
r35
569}}}{{{#!if p==46
r14
570{{{#!if d=true
r20
571}}}}}}{{{#!if p==48
r9
5720}}}{{{#!if p==49
5731}}}{{{#!if p==50
5742}}}{{{#!if p==51
5753}}}{{{#!if p==52
5764}}}{{{#!if p==53
5775}}}{{{#!if p==54
5786}}}{{{#!if p==55
5797}}}{{{#!if p==56
5808}}}{{{#!if p==57
r41
5819}}}{{{#!if o+=1
r23
582}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
583##18
r11
584{{{#!if p=r[o]
r35
585}}}{{{#!if p==46
r14
586{{{#!if d=true
r20
587}}}}}}{{{#!if p==48
r9
5880}}}{{{#!if p==49
5891}}}{{{#!if p==50
5902}}}{{{#!if p==51
5913}}}{{{#!if p==52
5924}}}{{{#!if p==53
5935}}}{{{#!if p==54
5946}}}{{{#!if p==55
5957}}}{{{#!if p==56
5968}}}{{{#!if p==57
r41
5979}}}{{{#!if o+=1
r23
598}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
599##19
r11
600{{{#!if p=r[o]
r35
601}}}{{{#!if p==46
r14
602{{{#!if d=true
r20
603}}}}}}{{{#!if p==48
r9
6040}}}{{{#!if p==49
6051}}}{{{#!if p==50
6062}}}{{{#!if p==51
6073}}}{{{#!if p==52
6084}}}{{{#!if p==53
6095}}}{{{#!if p==54
6106}}}{{{#!if p==55
6117}}}{{{#!if p==56
6128}}}{{{#!if p==57
r41
6139}}}{{{#!if o+=1
r23
614}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
615##20
r11
616{{{#!if p=r[o]
r35
617}}}{{{#!if p==46
r14
618{{{#!if d=true
r20
619}}}}}}{{{#!if p==48
r9
6200}}}{{{#!if p==49
6211}}}{{{#!if p==50
6222}}}{{{#!if p==51
6233}}}{{{#!if p==52
6244}}}{{{#!if p==53
6255}}}{{{#!if p==54
6266}}}{{{#!if p==55
6277}}}{{{#!if p==56
6288}}}{{{#!if p==57
r41
6299}}}{{{#!if o+=1
r20
630}}}}}}{{{#!if o=0, l=u.length
631}}}{{{#!if u[0]==45
632##음수로 마이너스가 표시되면 넘기기
r41
633{{{#!if o+=1
r20
634}}}}}}{{{#!if l-o>2
635##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r41
636{{{#!if o+=1
r42
637##일의 자리 넘기기
r32
638}}}{{{#!if (u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48)||(u[o+5]!=48)||(u[o+6]!=48)
r42
639##".000000"은 표기하지 않음. 소수점 표기
640.{{{#!if o+=1
641}}}}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48)||(u[o+5]!=48))
r21
642##1
r22
643{{{#!if p=u[o]
r21
644}}}{{{#!if p==48
r25
6450}}}{{{#!if p==49
r21
6461}}}{{{#!if p==50
6472}}}{{{#!if p==51
6483}}}{{{#!if p==52
6494}}}{{{#!if p==53
6505}}}{{{#!if p==54
6516}}}{{{#!if p==55
6527}}}{{{#!if p==56
6538}}}{{{#!if p==57
r41
6549}}}{{{#!if o+=1
r23
655}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r21
656##2
r22
657{{{#!if p=u[o]
r21
658}}}{{{#!if p==48
6590}}}{{{#!if p==49
6601}}}{{{#!if p==50
6612}}}{{{#!if p==51
6623}}}{{{#!if p==52
6634}}}{{{#!if p==53
6645}}}{{{#!if p==54
6656}}}{{{#!if p==55
6667}}}{{{#!if p==56
6678}}}{{{#!if p==57
r41
6689}}}{{{#!if o+=1
r23
669}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r21
670##3
r22
671{{{#!if p=u[o]
r21
672}}}{{{#!if p==48
6730}}}{{{#!if p==49
6741}}}{{{#!if p==50
6752}}}{{{#!if p==51
6763}}}{{{#!if p==52
6774}}}{{{#!if p==53
6785}}}{{{#!if p==54
6796}}}{{{#!if p==55
6807}}}{{{#!if p==56
6818}}}{{{#!if p==57
r41
6829}}}{{{#!if o+=1
r23
683}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r21
684##4
r22
685{{{#!if p=u[o]
r21
686}}}{{{#!if p==48
6870}}}{{{#!if p==49
6881}}}{{{#!if p==50
6892}}}{{{#!if p==51
6903}}}{{{#!if p==52
6914}}}{{{#!if p==53
6925}}}{{{#!if p==54
6936}}}{{{#!if p==55
6947}}}{{{#!if p==56
6958}}}{{{#!if p==57
r41
6969}}}{{{#!if o+=1
r23
697}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r21
698##5
r22
699{{{#!if p=u[o]
r21
700}}}{{{#!if p==48
7010}}}{{{#!if p==49
7021}}}{{{#!if p==50
7032}}}{{{#!if p==51
7043}}}{{{#!if p==52
7054}}}{{{#!if p==53
7065}}}{{{#!if p==54
7076}}}{{{#!if p==55
7087}}}{{{#!if p==56
7098}}}{{{#!if p==57
r41
7109}}}{{{#!if o+=1
r23
711}}}}}}{{{#!if (o<l)&&(d==true)
r21
712##6
r22
713{{{#!if p=u[o]
r21
714}}}{{{#!if p==48
r26
715##"0" 미표기
716}}}{{{#!if p==49
r21
7171}}}{{{#!if p==50
7182}}}{{{#!if p==51
7193}}}{{{#!if p==52
7204}}}{{{#!if p==53
7215}}}{{{#!if p==54
7226}}}{{{#!if p==55
7237}}}{{{#!if p==56
7248}}}{{{#!if p==57
r41
7259}}}{{{#!if o+=1
r34
726}}}}}}}}}}}}