본문으로 건너뛰기

계산기2(r71판 Blame)

r71
r38
1[[분류:냥]][Include(틀:상세 내용, 설명대상=원본, 문서명=틀\:계산기)]
r39
2== 2-2 ==
r1
3{{{#!wiki style="font-weight: 300; font-size: 20px"
r61
4{{{#!wiki style="display: none"
r54
5##초기화
r50
6'''as''' : "a" value to string; '''bs''' : "b" value to string;
r51
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);
r50
11'''ap''' : "a" # of places of decimal (integer); '''bp''' : "b" # of places of decimal (integer);
120.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도
r70
13'''ru''' : "result" upper value (integer→string); '''rb''' : "result" below value (integer→string); '''rp''' : "result" # of places of decimal (integer)
r61
14{{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0
r48
15}}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf(".")
16}}}{{{#!if ad!=-1
r51
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
r59
19}}}{{{#!if (au=="")||(au=="-")||(au=="+")
r53
20.12345 식으로 또는 -.12345 식으로 기입할 경우 upper 값을 0으로 부여함.
r57
21{{{#!if au="0"
r51
22}}}}}}}}}{{{#!if ad==-1
r48
23{{{#!if this.au=as, ab="", ap=0+0
24}}}}}}{{{#!if bd!=-1
r51
25{{{#!if this.bu=bs.substr.(0,bd), this.bb=bs.substr(bd+1, bl-bd-1), this.bp=bb.length
r59
26}}}{{{#!if (bu=="")||(bu=="-")||(bu=="+")
r57
27{{{#!if bu="0"
r48
28}}}}}}}}}{{{#!if bd==-1
29{{{#!if this.bu=bs, bb="", bp=0+0
r46
30}}}}}}
r54
31
r56
32##유효성 검사.
33the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기. 소수점 위 최대 18자리, 소수점 아래 최대 18자리
r57
34{{{#!if au.length>19
r56
35error code of a 01번 : 오버플로
r57
36{{{#!if ea=1
r56
37}}}}}}
r57
38{{{#!if ab.length>19
r59
39warning code of a 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r57
40{{{#!if wa=1, ab=ab.substr(0,18)
41}}}}}}
r55
42
r57
43{{{#!if bu.length>19
44error code of b 01번 : 오버플로
45{{{#!if eb=01
46}}}}}}
r58
47{{{#!if bb.length>19
r60
48warning code of b 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r58
49{{{#!if wb=01, bb=bb.substr(0,18)
r57
50}}}}}}
51
r59
52##반점(,)을 자동적으로 생략하고 들어가는 것은 나중에 생각하겠습니다.
53error code 02 번 : 입력한 변수는 숫자로 읽을 수 없습니다. 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.
r66
54
55덧셈과 뺄셈 계산과정을 적어봅니다.
56{{{#!if (f=="+")||(f=="-")
57소수점 아래를 계산하려면 자릿수를 똑같이 맞춰야 의미가 있으므로, 자릿수가 다른 경우 자릿수가 같게 만드는 과정을 먼저 거칩니다.
58{{{#!if ap>bp
r67
59이를테면 a의 소수점 자릿수가 b의 소수점 자릿수보다 많으면 b뒤에 0을 더 추가하는 방식으로 변경합니다. b 자체가 정수여도 앞에 (소수점이 없을 경우) 이미 bb="", bp=0+0으로 초기화했으므로 동작될 것입니다.
r66
60{{{#!if bp+=1, bb=bb+"0"
r67
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"
r66
69}}}}}}
r67
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}}}}}}
r69
99소수점 아래 최대 18자리까지의 수를 취급하므로 최대 18회.
r67
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}}}}}}
r66
142}}}
r71
143위의 과정을 거치게 되면 소수점 아래 최대 자릿수를 똑같이 맞춘 상태에서 계산하게 되므로 ap==bp가 됩니다.
r66
144
r71
145a가 음수인 경우 소수점 아래 값은 순 숫자만 표기된 상태이므로 양수 취급으로 되지 않게 소수점 아래 값인 ab에 음수 표기를 남깁니다.
r68
146{{{#!if as[0]==45
147{{{#!if ab="-"+ab
148}}}}}}
r71
149마찬가지로 b가 음수인 경우 b의 소수점 아래 값은 음수이므로 소수점 아래 값인 bb에 음수 표기를 남깁니다.
r68
150{{{#!if bs[0]==45
151{{{#!if bb="-"+bb
152}}}}}}
153
r65
154{{{#!if f=="+"
155{{{#!if ru=(+au)+(+bu), rb=(+ab)+(+bb)
156}}}}}}
157{{{#!if f=="-"
r66
158뺄셈은 덧셈의 역연산이고 구조가 단순하므로 덧셈과 뺄셈을 먼저 같이 처리합니다. ru, rb는 각각 정수 값으로 나올 것입니다.
r65
159{{{#!if ru=(+au)-(+bu), rb=(+ab)-(+bb)
160}}}}}}
r69
161소수점 아래끼리 더한 자릿수가 얼마나 되는지 보기 위해 rb를 문자열로 바꿉니다.
162{{{#!if this.rb=rb.toString()
163}}}
r71
164문자열로 된 rb의 길이를 rp로 정의합니다.
r69
165{{{#!if this.rp=rb.length
166}}}
r71
167rb가 음수이면 rp를 -1로 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 고정되어 있으므로 줄일 필요가 없습니다.
r69
168{{{#!if rb[0]==45
r70
169{{{#!if rp=rp-1
r69
170}}}}}}
r57
171
r71
172ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다.
r65
173{{{#!if ru>0
r71
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)
r69
178}}}}}}
r71
179rb가 자릿수를 초과하지 않을 경우 rb를 다시 정의할 필요 없이 그대로 둡니다.
180{{{#!if rp<=ap
181}}}}}}
182
r65
183{{{#!if ru==0
184}}}
185{{{#!if ru<0
186}}}
r71
187
188
r62
189{{{#!if f=="*"
r64
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*각 자릿수로 덧셈해볼 수는 있습니다.
r62
192}}}
193
r60
194error code 03 번 : 오버플로
195error code 04 번 : 언더플로
196error code 05 번 : 0으로 나눌 수 없습니다.
r59
197
r62
198##여기까지 주석(주석 아님)
r49
199}}}{{{#!if as[0]!=45
r48
200@a@}}}{{{#!if as[0]==45
201(@a@)}}}{{{#!if f=='+'
r62
202+}}}{{{#!if f=="-"
203-}}}{{{#!if f=="*"
204*}}}{{{#!if f=="/"
205/}}}{{{#!if bs[0]!=45
r48
206@b@}}}{{{#!if bs[0]==45
r52
207(@b@)}}}}}}
r39
208==# 2-1 #==
209{{{#!wiki style="font-weight: 300; font-size: 20px"
r33
210{{{#!if +a>=0
211@a@}}}{{{#!if +a<0
r32
212(@a@)}}} {{{#!if f == '+'
r13
213{{{#!if r =(+a)+(+b)+0.0, u=(+a)+(+b)
r1
214}}}+}}}{{{#!if f == '-'
r13
215{{{#!if r =(+a)-(+b)+0.0, u=(+a)-(+b)
r1
216}}}-}}}{{{#!if f == '*'
r13
217{{{#!if r =((+a)+0.0)*((+b)+0.0), u=(+a)*(+b)
r1
218}}}×}}}{{{#!if f == '/'
r13
219{{{#!if r =((+a)+0.0)/((+b)+0.0), u=(+a)/(+b)
r33
220}}}÷}}} {{{#!if +b>=0
221@b@}}}{{{#!if +b<0
r32
222(@b@)}}} = {{{#!if u=r-u, d=false
r14
223##u : 나누어떨어지는 부분 절삭하기. d : dot 매김 여부
r16
224}}}{{{#!if r=r.toString(), u=u.toString()
r8
225}}}{{{#!if o=0, l=r.length
r9
226}}}{{{#!if (r!=null)&&(r!="")
227{{{#!if +o<l
r14
228##1
r9
229{{{#!if p=r[o]
r7
230}}}{{{#!if p==45
231-}}}{{{#!if p==46
r12
232{{{#!if d=true
r16
233}}}}}}{{{#!if p==48
r7
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
r36
2439}}}{{{#!if o+=1
r15
244}}}}}}{{{#!if (o<l)&&(d==false)
r14
245##2
r9
246{{{#!if p=r[o]
r31
247}}}{{{#!if p==46
r12
248{{{#!if d=true
r16
249}}}}}}{{{#!if p==48
r7
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
r36
2599}}}{{{#!if o+=1
r19
260}}}}}}{{{#!if (o<l)&&(d==false)
r14
261##3
r9
262{{{#!if p=r[o]
r31
263}}}{{{#!if p==46
r12
264{{{#!if d=true
r16
265}}}}}}{{{#!if p==48
r7
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
r36
2759}}}{{{#!if o+=1
r19
276}}}}}}{{{#!if (o<l)&&(d==false)
r14
277##4
r9
278{{{#!if p=r[o]
r31
279}}}{{{#!if p==46
r12
280{{{#!if d=true
r16
281}}}}}}{{{#!if p==48
r7
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
r36
2919}}}{{{#!if o+=1
r19
292}}}}}}{{{#!if (o<l)&&(d==false)
r14
293##5
r9
294{{{#!if p=r[o]
r31
295}}}{{{#!if p==46
r12
296{{{#!if d=true
r16
297}}}}}}{{{#!if p==48
r7
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
r36
3079}}}{{{#!if o+=1
r19
308}}}}}}{{{#!if (o<l)&&(d==false)
r14
309##6
r9
310{{{#!if p=r[o]
r31
311}}}{{{#!if p==46
r12
312{{{#!if d=true
r16
313}}}}}}{{{#!if p==48
r7
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
r36
3239}}}{{{#!if o+=1
r19
324}}}}}}{{{#!if (o<l)&&(d==false)
r14
325##7
r9
326{{{#!if p=r[o]
r31
327}}}{{{#!if p==46
r12
328{{{#!if d=true
r16
329}}}}}}{{{#!if p==48
r7
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
r36
3399}}}{{{#!if o+=1
r19
340}}}}}}{{{#!if (o<l)&&(d==false)
r14
341##8
r9
342{{{#!if p=r[o]
r31
343}}}{{{#!if p==46
r12
344{{{#!if d=true
r16
345}}}}}}{{{#!if p==48
r7
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
r36
3559}}}{{{#!if o+=1
r19
356}}}}}}{{{#!if (o<l)&&(d==false)
r14
357##9
r9
358{{{#!if p=r[o]
r31
359}}}{{{#!if p==46
r12
360{{{#!if d=true
r16
361}}}}}}{{{#!if p==48
r7
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
r36
3719}}}{{{#!if o+=1
r19
372}}}}}}{{{#!if (o<l)&&(d==false)
r14
373##10
r9
374{{{#!if p=r[o]
r31
375}}}{{{#!if p==46
r12
376{{{#!if d=true
r16
377}}}}}}{{{#!if p==48
r7
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
r36
3879}}}{{{#!if o+=1
r19
388}}}}}}{{{#!if (o<l)&&(d==false)
r14
389##11
r9
390{{{#!if p=r[o]
r31
391}}}{{{#!if p==46
r12
392{{{#!if d=true
r16
393}}}}}}{{{#!if p==48
r7
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
r36
4039}}}{{{#!if o+=1
r19
404}}}}}}{{{#!if (o<l)&&(d==false)
r14
405##12
r9
406{{{#!if p=r[o]
r31
407}}}{{{#!if p==46
r12
408{{{#!if d=true
r16
409}}}}}}{{{#!if p==48
r7
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
r36
4199}}}{{{#!if o+=1
r19
420}}}}}}{{{#!if (o<l)&&(d==false)
r14
421##13
r9
422{{{#!if p=r[o]
r31
423}}}{{{#!if p==46
r12
424{{{#!if d=true
r16
425}}}}}}{{{#!if p==48
r7
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
r36
4359}}}{{{#!if o+=1
r19
436}}}}}}{{{#!if (o<l)&&(d==false)
r14
437##14
r9
438{{{#!if p=r[o]
r31
439}}}{{{#!if p==46
r12
440{{{#!if d=true
r16
441}}}}}}{{{#!if p==48
r7
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
r36
4519}}}{{{#!if o+=1
r19
452}}}}}}{{{#!if (o<l)&&(d==false)
r14
453##15
r9
454{{{#!if p=r[o]
r31
455}}}{{{#!if p==46
r12
456{{{#!if d=true
r16
457}}}}}}{{{#!if p==48
r7
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
r36
4679}}}{{{#!if o+=1
r19
468}}}}}}{{{#!if (o<l)&&(d==false)
r14
469##16
r9
470{{{#!if p=r[o]
r31
471}}}{{{#!if p==46
r12
472{{{#!if d=true
r16
473}}}}}}{{{#!if p==48
r7
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
r36
4839}}}{{{#!if o+=1
r19
484}}}}}}{{{#!if (o<l)&&(d==false)
r14
485##17
r9
486{{{#!if p=r[o]
r31
487}}}{{{#!if p==46
r12
488{{{#!if d=true
r16
489}}}}}}{{{#!if p==48
r7
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
r36
4999}}}{{{#!if o+=1
r19
500}}}}}}{{{#!if (o<l)&&(d==false)
r14
501##18
r9
502{{{#!if p=r[o]
r31
503}}}{{{#!if p==46
r12
504{{{#!if d=true
r16
505}}}}}}{{{#!if p==48
r7
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
r36
5159}}}{{{#!if o+=1
r19
516}}}}}}{{{#!if (o<l)&&(d==false)
r14
517##19
r9
518{{{#!if p=r[o]
r31
519}}}{{{#!if p==46
r12
520{{{#!if d=true
r16
521}}}}}}{{{#!if p==48
r7
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
r36
5319}}}{{{#!if o+=1
r19
532}}}}}}{{{#!if (o<l)&&(d==false)
r14
533##20
r9
534{{{#!if p=r[o]
r31
535}}}{{{#!if p==46
r12
536{{{#!if d=true
r16
537}}}}}}{{{#!if p==48
r7
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
r36
5479}}}{{{#!if o+=1
r16
548}}}}}}{{{#!if o=0, l=u.length
549}}}{{{#!if u[0]==45
550##음수로 마이너스가 표시되면 넘기기
r36
551{{{#!if o+=1
r16
552}}}}}}{{{#!if l-o>2
553##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r36
554{{{#!if o+=1
r37
555##일의 자리 넘기기
r28
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)
r37
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))
r17
560##1
r18
561{{{#!if p=u[o]
r17
562}}}{{{#!if p==48
r21
5630}}}{{{#!if p==49
r17
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
r36
5729}}}{{{#!if o+=1
r19
573}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r17
574##2
r18
575{{{#!if p=u[o]
r17
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
r36
5869}}}{{{#!if o+=1
r19
587}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r17
588##3
r18
589{{{#!if p=u[o]
r17
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
r36
6009}}}{{{#!if o+=1
r19
601}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r17
602##4
r18
603{{{#!if p=u[o]
r17
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
r36
6149}}}{{{#!if o+=1
r19
615}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r17
616##5
r18
617{{{#!if p=u[o]
r17
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
r36
6289}}}{{{#!if o+=1
r19
629}}}}}}{{{#!if (o<l)&&(d==true)
r17
630##6
r18
631{{{#!if p=u[o]
r17
632}}}{{{#!if p==48
r22
633##"0" 미표기
634}}}{{{#!if p==49
r17
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
r36
6439}}}{{{#!if o+=1
r30
644}}}}}}}}}}}}