r76
r43
1[[분류:냥]][Include(틀:상세 내용, 설명대상=원본, 문서명=틀\:계산기)]
r44
2== 2-2 ==
r7

(r5으로 되돌림)
3{{{#!wiki style="font-weight: 300; font-size: 20px"
r66
4{{{#!wiki style="display: none"
r59
5##초기화
r55
6'''as''' : "a" value to string; '''bs''' : "b" value to string;
r56
7'''al''' : "a" string length (integer); '''bl''' : "b" string length (integer)
8'''ad''' : "a" decimal point (integer); '''bd''' : "b" decimal point (integer);
9'''au''' : --gold-- "a" upper value (string→integer); '''bu''' : "b" upper value (string→integer);
10'''ab''' : "a" below value (string→integer); '''bb''' : "b" below value (string→integer);
r55
11'''ap''' : "a" # of places of decimal (integer); '''bp''' : "b" # of places of decimal (integer);
120.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도
r75
13'''ru''' : "result" upper value (integer→string); '''rb''' : "result" below value (integer→string); '''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=="-")
57소수점 아래를 계산하려면 자릿수를 똑같이 맞춰야 의미가 있으므로, 자릿수가 다른 경우 자릿수가 같게 만드는 과정을 먼저 거칩니다.
58{{{#!if ap>bp
r72
59이를테면 a의 소수점 자릿수가 b의 소수점 자릿수보다 많으면 b뒤에 0을 더 추가하는 방식으로 변경합니다. b 자체가 정수여도 앞에 (소수점이 없을 경우) 이미 bb="", bp=0+0으로 초기화했으므로 동작될 것입니다.
r71
60{{{#!if bp+=1, bb=bb+"0"
r72
61}}}}}}{{{#!if ap>bp
62{{{#!if bp+=1, bb=bb+"0"
63}}}}}}{{{#!if ap>bp
64{{{#!if bp+=1, bb=bb+"0"
65}}}}}}{{{#!if ap>bp
66{{{#!if bp+=1, bb=bb+"0"
67}}}}}}{{{#!if ap>bp
68{{{#!if bp+=1, bb=bb+"0"
r71
69}}}}}}
r72
70{{{#!if ap>bp
71{{{#!if bp+=1, bb=bb+"0"
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"
80}}}}}}
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}}}}}}
r74
99소수점 아래 최대 18자리까지의 수를 취급하므로 최대 18회.
r72
100
101반대로 b의 소수점 자릿수가 많은 경우도 있습니다.
102{{{#!if bp>ap
103{{{#!if ap+=1, ab=ab+"0"
104}}}}}}{{{#!if bp>ap
105{{{#!if ap+=1, ab=ab+"0"
106}}}}}}{{{#!if bp>ap
107{{{#!if ap+=1, ab=ab+"0"
108}}}}}}{{{#!if bp>ap
109{{{#!if ap+=1, ab=ab+"0"
110}}}}}}{{{#!if bp>ap
111{{{#!if ap+=1, ab=ab+"0"
112}}}}}}
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}}}}}}
r71
142}}}
r76
143위의 과정을 거치게 되면 소수점 아래 최대 자릿수를 똑같이 맞춘 상태에서 계산하게 되므로 ap==bp가 됩니다.
r71
144
r76
145a가 음수인 경우 소수점 아래 값은 순 숫자만 표기된 상태이므로 양수 취급으로 되지 않게 소수점 아래 값인 ab에 음수 표기를 남깁니다.
r73
146{{{#!if as[0]==45
147{{{#!if ab="-"+ab
148}}}}}}
r76
149마찬가지로 b가 음수인 경우 b의 소수점 아래 값은 음수이므로 소수점 아래 값인 bb에 음수 표기를 남깁니다.
r73
150{{{#!if bs[0]==45
151{{{#!if bb="-"+bb
152}}}}}}
153
r70
154{{{#!if f=="+"
155{{{#!if ru=(+au)+(+bu), rb=(+ab)+(+bb)
156}}}}}}
157{{{#!if f=="-"
r71
158뺄셈은 덧셈의 역연산이고 구조가 단순하므로 덧셈과 뺄셈을 먼저 같이 처리합니다. ru, rb는 각각 정수 값으로 나올 것입니다.
r70
159{{{#!if ru=(+au)-(+bu), rb=(+ab)-(+bb)
160}}}}}}
r74
161소수점 아래끼리 더한 자릿수가 얼마나 되는지 보기 위해 rb를 문자열로 바꿉니다.
162{{{#!if this.rb=rb.toString()
163}}}
r76
164문자열로 된 rb의 길이를 rp로 정의합니다.
r74
165{{{#!if this.rp=rb.length
166}}}
r76
167rb가 음수이면 rp를 -1로 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 고정되어 있으므로 줄일 필요가 없습니다.
r74
168{{{#!if rb[0]==45
r75
169{{{#!if rp=rp-1
r74
170}}}}}}
r62
171
r76
172ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다.
r70
173{{{#!if ru>0
r76
174{{{#!if +rb>=0
175rb가 자릿수를 초과할 경우 ap=bp인 상황에서 rp>ap가 됩니다. rb는 첫 숫자가 1인 정수가 되므로 첫 숫자인 1을 삭제한 문자열로 정의합니다.
176{{{#!if rp>ap
177{{{#!if ru=ru+1, rb=rb.substr(1, rp-1)
r74
178}}}}}}
r76
179rb가 자릿수를 초과하지 않을 경우 rb를 다시 정의할 필요 없이 그대로 둡니다.
180{{{#!if rp<=ap
181}}}}}}
182
r70
183{{{#!if ru==0
184}}}
185{{{#!if ru<0
186}}}
r76
187
188
r67
189{{{#!if f=="*"
r69
19018자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
191다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
r67
192}}}
193
r65
194error code 03 번 : 오버플로
195error code 04 번 : 언더플로
196error code 05 번 : 0으로 나눌 수 없습니다.
r64
197
r67
198##여기까지 주석(주석 아님)
r54
199}}}{{{#!if as[0]!=45
r53
200@a@}}}{{{#!if as[0]==45
201(@a@)}}}{{{#!if f=='+'
r67
202+}}}{{{#!if f=="-"
203-}}}{{{#!if f=="*"
204*}}}{{{#!if f=="/"
205/}}}{{{#!if bs[0]!=45
r53
206@b@}}}{{{#!if bs[0]==45
r57
207(@b@)}}}}}}
r44
208==# 2-1 #==
209{{{#!wiki style="font-weight: 300; font-size: 20px"
r37
210{{{#!if +a>=0
211@a@}}}{{{#!if +a<0
r36
212(@a@)}}} {{{#!if f == '+'
r40

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

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

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

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

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

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

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

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

(r16으로 되돌림)
228##1
r11
229{{{#!if p=r[o]
r9
230}}}{{{#!if p==45
231-}}}{{{#!if p==46
r14
232{{{#!if d=true
r20
233}}}}}}{{{#!if p==48
r9
2340}}}{{{#!if p==49
2351}}}{{{#!if p==50
2362}}}{{{#!if p==51
2373}}}{{{#!if p==52
2384}}}{{{#!if p==53
2395}}}{{{#!if p==54
2406}}}{{{#!if p==55
2417}}}{{{#!if p==56
2428}}}{{{#!if p==57
r41
2439}}}{{{#!if o+=1
r19
244}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
245##2
r11
246{{{#!if p=r[o]
r35
247}}}{{{#!if p==46
r14
248{{{#!if d=true
r20
249}}}}}}{{{#!if p==48
r9
2500}}}{{{#!if p==49
2511}}}{{{#!if p==50
2522}}}{{{#!if p==51
2533}}}{{{#!if p==52
2544}}}{{{#!if p==53
2555}}}{{{#!if p==54
2566}}}{{{#!if p==55
2577}}}{{{#!if p==56
2588}}}{{{#!if p==57
r41
2599}}}{{{#!if o+=1
r23
260}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
261##3
r11
262{{{#!if p=r[o]
r35
263}}}{{{#!if p==46
r14
264{{{#!if d=true
r20
265}}}}}}{{{#!if p==48
r9
2660}}}{{{#!if p==49
2671}}}{{{#!if p==50
2682}}}{{{#!if p==51
2693}}}{{{#!if p==52
2704}}}{{{#!if p==53
2715}}}{{{#!if p==54
2726}}}{{{#!if p==55
2737}}}{{{#!if p==56
2748}}}{{{#!if p==57
r41
2759}}}{{{#!if o+=1
r23
276}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
277##4
r11
278{{{#!if p=r[o]
r35
279}}}{{{#!if p==46
r14
280{{{#!if d=true
r20
281}}}}}}{{{#!if p==48
r9
2820}}}{{{#!if p==49
2831}}}{{{#!if p==50
2842}}}{{{#!if p==51
2853}}}{{{#!if p==52
2864}}}{{{#!if p==53
2875}}}{{{#!if p==54
2886}}}{{{#!if p==55
2897}}}{{{#!if p==56
2908}}}{{{#!if p==57
r41
2919}}}{{{#!if o+=1
r23
292}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
293##5
r11
294{{{#!if p=r[o]
r35
295}}}{{{#!if p==46
r14
296{{{#!if d=true
r20
297}}}}}}{{{#!if p==48
r9
2980}}}{{{#!if p==49
2991}}}{{{#!if p==50
3002}}}{{{#!if p==51
3013}}}{{{#!if p==52
3024}}}{{{#!if p==53
3035}}}{{{#!if p==54
3046}}}{{{#!if p==55
3057}}}{{{#!if p==56
3068}}}{{{#!if p==57
r41
3079}}}{{{#!if o+=1
r23
308}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
309##6
r11
310{{{#!if p=r[o]
r35
311}}}{{{#!if p==46
r14
312{{{#!if d=true
r20
313}}}}}}{{{#!if p==48
r9
3140}}}{{{#!if p==49
3151}}}{{{#!if p==50
3162}}}{{{#!if p==51
3173}}}{{{#!if p==52
3184}}}{{{#!if p==53
3195}}}{{{#!if p==54
3206}}}{{{#!if p==55
3217}}}{{{#!if p==56
3228}}}{{{#!if p==57
r41
3239}}}{{{#!if o+=1
r23
324}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
325##7
r11
326{{{#!if p=r[o]
r35
327}}}{{{#!if p==46
r14
328{{{#!if d=true
r20
329}}}}}}{{{#!if p==48
r9
3300}}}{{{#!if p==49
3311}}}{{{#!if p==50
3322}}}{{{#!if p==51
3333}}}{{{#!if p==52
3344}}}{{{#!if p==53
3355}}}{{{#!if p==54
3366}}}{{{#!if p==55
3377}}}{{{#!if p==56
3388}}}{{{#!if p==57
r41
3399}}}{{{#!if o+=1
r23
340}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
341##8
r11
342{{{#!if p=r[o]
r35
343}}}{{{#!if p==46
r14
344{{{#!if d=true
r20
345}}}}}}{{{#!if p==48
r9
3460}}}{{{#!if p==49
3471}}}{{{#!if p==50
3482}}}{{{#!if p==51
3493}}}{{{#!if p==52
3504}}}{{{#!if p==53
3515}}}{{{#!if p==54
3526}}}{{{#!if p==55
3537}}}{{{#!if p==56
3548}}}{{{#!if p==57
r41
3559}}}{{{#!if o+=1
r23
356}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
357##9
r11
358{{{#!if p=r[o]
r35
359}}}{{{#!if p==46
r14
360{{{#!if d=true
r20
361}}}}}}{{{#!if p==48
r9
3620}}}{{{#!if p==49
3631}}}{{{#!if p==50
3642}}}{{{#!if p==51
3653}}}{{{#!if p==52
3664}}}{{{#!if p==53
3675}}}{{{#!if p==54
3686}}}{{{#!if p==55
3697}}}{{{#!if p==56
3708}}}{{{#!if p==57
r41
3719}}}{{{#!if o+=1
r23
372}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
373##10
r11
374{{{#!if p=r[o]
r35
375}}}{{{#!if p==46
r14
376{{{#!if d=true
r20
377}}}}}}{{{#!if p==48
r9
3780}}}{{{#!if p==49
3791}}}{{{#!if p==50
3802}}}{{{#!if p==51
3813}}}{{{#!if p==52
3824}}}{{{#!if p==53
3835}}}{{{#!if p==54
3846}}}{{{#!if p==55
3857}}}{{{#!if p==56
3868}}}{{{#!if p==57
r41
3879}}}{{{#!if o+=1
r23
388}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
389##11
r11
390{{{#!if p=r[o]
r35
391}}}{{{#!if p==46
r14
392{{{#!if d=true
r20
393}}}}}}{{{#!if p==48
r9
3940}}}{{{#!if p==49
3951}}}{{{#!if p==50
3962}}}{{{#!if p==51
3973}}}{{{#!if p==52
3984}}}{{{#!if p==53
3995}}}{{{#!if p==54
4006}}}{{{#!if p==55
4017}}}{{{#!if p==56
4028}}}{{{#!if p==57
r41
4039}}}{{{#!if o+=1
r23
404}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
405##12
r11
406{{{#!if p=r[o]
r35
407}}}{{{#!if p==46
r14
408{{{#!if d=true
r20
409}}}}}}{{{#!if p==48
r9
4100}}}{{{#!if p==49
4111}}}{{{#!if p==50
4122}}}{{{#!if p==51
4133}}}{{{#!if p==52
4144}}}{{{#!if p==53
4155}}}{{{#!if p==54
4166}}}{{{#!if p==55
4177}}}{{{#!if p==56
4188}}}{{{#!if p==57
r41
4199}}}{{{#!if o+=1
r23
420}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
421##13
r11
422{{{#!if p=r[o]
r35
423}}}{{{#!if p==46
r14
424{{{#!if d=true
r20
425}}}}}}{{{#!if p==48
r9
4260}}}{{{#!if p==49
4271}}}{{{#!if p==50
4282}}}{{{#!if p==51
4293}}}{{{#!if p==52
4304}}}{{{#!if p==53
4315}}}{{{#!if p==54
4326}}}{{{#!if p==55
4337}}}{{{#!if p==56
4348}}}{{{#!if p==57
r41
4359}}}{{{#!if o+=1
r23
436}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
437##14
r11
438{{{#!if p=r[o]
r35
439}}}{{{#!if p==46
r14
440{{{#!if d=true
r20
441}}}}}}{{{#!if p==48
r9
4420}}}{{{#!if p==49
4431}}}{{{#!if p==50
4442}}}{{{#!if p==51
4453}}}{{{#!if p==52
4464}}}{{{#!if p==53
4475}}}{{{#!if p==54
4486}}}{{{#!if p==55
4497}}}{{{#!if p==56
4508}}}{{{#!if p==57
r41
4519}}}{{{#!if o+=1
r23
452}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
453##15
r11
454{{{#!if p=r[o]
r35
455}}}{{{#!if p==46
r14
456{{{#!if d=true
r20
457}}}}}}{{{#!if p==48
r9
4580}}}{{{#!if p==49
4591}}}{{{#!if p==50
4602}}}{{{#!if p==51
4613}}}{{{#!if p==52
4624}}}{{{#!if p==53
4635}}}{{{#!if p==54
4646}}}{{{#!if p==55
4657}}}{{{#!if p==56
4668}}}{{{#!if p==57
r41
4679}}}{{{#!if o+=1
r23
468}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
469##16
r11
470{{{#!if p=r[o]
r35
471}}}{{{#!if p==46
r14
472{{{#!if d=true
r20
473}}}}}}{{{#!if p==48
r9
4740}}}{{{#!if p==49
4751}}}{{{#!if p==50
4762}}}{{{#!if p==51
4773}}}{{{#!if p==52
4784}}}{{{#!if p==53
4795}}}{{{#!if p==54
4806}}}{{{#!if p==55
4817}}}{{{#!if p==56
4828}}}{{{#!if p==57
r41
4839}}}{{{#!if o+=1
r23
484}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
485##17
r11
486{{{#!if p=r[o]
r35
487}}}{{{#!if p==46
r14
488{{{#!if d=true
r20
489}}}}}}{{{#!if p==48
r9
4900}}}{{{#!if p==49
4911}}}{{{#!if p==50
4922}}}{{{#!if p==51
4933}}}{{{#!if p==52
4944}}}{{{#!if p==53
4955}}}{{{#!if p==54
4966}}}{{{#!if p==55
4977}}}{{{#!if p==56
4988}}}{{{#!if p==57
r41
4999}}}{{{#!if o+=1
r23
500}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
501##18
r11
502{{{#!if p=r[o]
r35
503}}}{{{#!if p==46
r14
504{{{#!if d=true
r20
505}}}}}}{{{#!if p==48
r9
5060}}}{{{#!if p==49
5071}}}{{{#!if p==50
5082}}}{{{#!if p==51
5093}}}{{{#!if p==52
5104}}}{{{#!if p==53
5115}}}{{{#!if p==54
5126}}}{{{#!if p==55
5137}}}{{{#!if p==56
5148}}}{{{#!if p==57
r41
5159}}}{{{#!if o+=1
r23
516}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
517##19
r11
518{{{#!if p=r[o]
r35
519}}}{{{#!if p==46
r14
520{{{#!if d=true
r20
521}}}}}}{{{#!if p==48
r9
5220}}}{{{#!if p==49
5231}}}{{{#!if p==50
5242}}}{{{#!if p==51
5253}}}{{{#!if p==52
5264}}}{{{#!if p==53
5275}}}{{{#!if p==54
5286}}}{{{#!if p==55
5297}}}{{{#!if p==56
5308}}}{{{#!if p==57
r41
5319}}}{{{#!if o+=1
r23
532}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
533##20
r11
534{{{#!if p=r[o]
r35
535}}}{{{#!if p==46
r14
536{{{#!if d=true
r20
537}}}}}}{{{#!if p==48
r9
5380}}}{{{#!if p==49
5391}}}{{{#!if p==50
5402}}}{{{#!if p==51
5413}}}{{{#!if p==52
5424}}}{{{#!if p==53
5435}}}{{{#!if p==54
5446}}}{{{#!if p==55
5457}}}{{{#!if p==56
5468}}}{{{#!if p==57
r41
5479}}}{{{#!if o+=1
r20
548}}}}}}{{{#!if o=0, l=u.length
549}}}{{{#!if u[0]==45
550##음수로 마이너스가 표시되면 넘기기
r41
551{{{#!if o+=1
r20
552}}}}}}{{{#!if l-o>2
553##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r41
554{{{#!if o+=1
r42
555##일의 자리 넘기기
r32
556}}}{{{#!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
557##".000000"은 표기하지 않음. 소수점 표기
558.{{{#!if o+=1
559}}}}}}}}}{{{#!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
560##1
r22
561{{{#!if p=u[o]
r21
562}}}{{{#!if p==48
r25
5630}}}{{{#!if p==49
r21
5641}}}{{{#!if p==50
5652}}}{{{#!if p==51
5663}}}{{{#!if p==52
5674}}}{{{#!if p==53
5685}}}{{{#!if p==54
5696}}}{{{#!if p==55
5707}}}{{{#!if p==56
5718}}}{{{#!if p==57
r41
5729}}}{{{#!if o+=1
r23
573}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r21
574##2
r22
575{{{#!if p=u[o]
r21
576}}}{{{#!if p==48
5770}}}{{{#!if p==49
5781}}}{{{#!if p==50
5792}}}{{{#!if p==51
5803}}}{{{#!if p==52
5814}}}{{{#!if p==53
5825}}}{{{#!if p==54
5836}}}{{{#!if p==55
5847}}}{{{#!if p==56
5858}}}{{{#!if p==57
r41
5869}}}{{{#!if o+=1
r23
587}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r21
588##3
r22
589{{{#!if p=u[o]
r21
590}}}{{{#!if p==48
5910}}}{{{#!if p==49
5921}}}{{{#!if p==50
5932}}}{{{#!if p==51
5943}}}{{{#!if p==52
5954}}}{{{#!if p==53
5965}}}{{{#!if p==54
5976}}}{{{#!if p==55
5987}}}{{{#!if p==56
5998}}}{{{#!if p==57
r41
6009}}}{{{#!if o+=1
r23
601}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r21
602##4
r22
603{{{#!if p=u[o]
r21
604}}}{{{#!if p==48
6050}}}{{{#!if p==49
6061}}}{{{#!if p==50
6072}}}{{{#!if p==51
6083}}}{{{#!if p==52
6094}}}{{{#!if p==53
6105}}}{{{#!if p==54
6116}}}{{{#!if p==55
6127}}}{{{#!if p==56
6138}}}{{{#!if p==57
r41
6149}}}{{{#!if o+=1
r23
615}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r21
616##5
r22
617{{{#!if p=u[o]
r21
618}}}{{{#!if p==48
6190}}}{{{#!if p==49
6201}}}{{{#!if p==50
6212}}}{{{#!if p==51
6223}}}{{{#!if p==52
6234}}}{{{#!if p==53
6245}}}{{{#!if p==54
6256}}}{{{#!if p==55
6267}}}{{{#!if p==56
6278}}}{{{#!if p==57
r41
6289}}}{{{#!if o+=1
r23
629}}}}}}{{{#!if (o<l)&&(d==true)
r21
630##6
r22
631{{{#!if p=u[o]
r21
632}}}{{{#!if p==48
r26
633##"0" 미표기
634}}}{{{#!if p==49
r21
6351}}}{{{#!if p==50
6362}}}{{{#!if p==51
6373}}}{{{#!if p==52
6384}}}{{{#!if p==53
6395}}}{{{#!if p==54
6406}}}{{{#!if p==55
6417}}}{{{#!if p==56
6428}}}{{{#!if p==57
r41
6439}}}{{{#!if o+=1
r34
644}}}}}}}}}}}}