r111
r43
1[[분류:냥]][Include(틀:상세 내용, 설명대상=원본, 문서명=틀\:계산기)]
r44
2== 2-2 ==
r102
3{{{#!wiki style="display: none;"
4##디버그용 if 문법
r98

(r96으로 되돌림)
5{{{#!if a= ,b= ,f=
r96
6}}}
r95
7{{{#!wiki style="display: none; display: inline;"
r59
8##초기화
r55
9'''as''' : "a" value to string; '''bs''' : "b" value to string;
r56
10'''al''' : "a" string length (integer); '''bl''' : "b" string length (integer)
11'''ad''' : "a" decimal point (integer); '''bd''' : "b" decimal point (integer);
12'''au''' : --gold-- "a" upper value (string→integer); '''bu''' : "b" upper value (string→integer);
13'''ab''' : "a" below value (string→integer); '''bb''' : "b" below value (string→integer);
r55
14'''ap''' : "a" # of places of decimal (integer); '''bp''' : "b" # of places of decimal (integer);
150.303과 0.0303은 다른 수이므로 자리수가 다름을 표시할 용도
r78
16'''ru''' : "result" upper value (integer→string); '''rb''' : "result" below value (integer→string);
17'''rp''' : "result" # of places of decimal (integer);
r111
18'''ps''' : pass (logical);
r92
19{{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0, this.rp=0+0
r53
20}}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf(".")
21}}}{{{#!if ad!=-1
r56
22소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기.
r98

(r96으로 되돌림)
23{{{#!if this.au=as.substr(0,ad), this.ab=as.substr(ad+1, al-ad-1), this.ap=ab.length
r64
24}}}{{{#!if (au=="")||(au=="-")||(au=="+")
r58
25.12345 식으로 또는 -.12345 식으로 기입할 경우 upper 값을 0으로 부여함.
r62
26{{{#!if au="0"
r56
27}}}}}}}}}{{{#!if ad==-1
r53
28{{{#!if this.au=as, ab="", ap=0+0
29}}}}}}{{{#!if bd!=-1
r99
30{{{#!if this.bu=bs.substr(0,bd), this.bb=bs.substr(bd+1, bl-bd-1), this.bp=bb.length
r64
31}}}{{{#!if (bu=="")||(bu=="-")||(bu=="+")
r62
32{{{#!if bu="0"
r53
33}}}}}}}}}{{{#!if bd==-1
34{{{#!if this.bu=bs, bb="", bp=0+0
r51
35}}}}}}
r59
36
r61
37##유효성 검사.
38the seed에서 지원되는 long(integer)가 unsigned였으면 1844경까지 가서 충분히 19자리로 놀 수 있었는데, signed long이므로 922경까지 가능한 공간에서 18자리로 잘라내기. 소수점 위 최대 18자리, 소수점 아래 최대 18자리
r62
39{{{#!if au.length>19
r61
40error code of a 01번 : 오버플로
r62
41{{{#!if ea=1
r61
42}}}}}}
r62
43{{{#!if ab.length>19
r64
44warning code of a 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r62
45{{{#!if wa=1, ab=ab.substr(0,18)
46}}}}}}
r60
47
r62
48{{{#!if bu.length>19
49error code of b 01번 : 오버플로
50{{{#!if eb=01
51}}}}}}
r63
52{{{#!if bb.length>19
r65
53warning code of b 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다. 소수점 아래 18자리까지만 취급합니다.
r63
54{{{#!if wb=01, bb=bb.substr(0,18)
r62
55}}}}}}
56
r64
57##반점(,)을 자동적으로 생략하고 들어가는 것은 나중에 생각하겠습니다.
58error code 02 번 : 입력한 변수는 숫자로 읽을 수 없습니다. 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.
r71
59
60덧셈과 뺄셈 계산과정을 적어봅니다.
61{{{#!if (f=="+")||(f=="-")
r81
62
63a과 b의 소수점 윗부분은 정수이므로 쉽게 계산할 수 있습니다.
64{{{#!if f=="+"
65{{{#!if ru=(+au)+(+bu)
66}}}}}}
67{{{#!if f=="-"
68{{{#!if ru=(+au)-(+bu)
69}}}}}}
r98

(r96으로 되돌림)
70
r81
71a와 b 모두가 정수이면 ad=a.indexOf("."), bd=b.indexOf(".") 모두 -1이고 ap==0, bp==0이 되며, 이런 경우에는 소수점 아래 자릿수를 검산할 필요가 없습니다. a와 b 중 소수점 아래 자릿수가 있는 수가 있을 때에만 소수점 윗자리의 계산값이 얼마가 나오느냐를 보면서 소수점 아래의 자릿수를 정리하는 과정이 의미가 있습니다.
72{{{#!if (ap>0)||(bp>0)
73만약 소수점 아래를 계산한다면 자릿수를 똑같이 맞춰야 의미가 있으므로, 자릿수가 다른 경우 자릿수가 같게 만드는 과정을 먼저 거칩니다.
r71
74{{{#!if ap>bp
r72
75이를테면 a의 소수점 자릿수가 b의 소수점 자릿수보다 많으면 b뒤에 0을 더 추가하는 방식으로 변경합니다. b 자체가 정수여도 앞에 (소수점이 없을 경우) 이미 bb="", bp=0+0으로 초기화했으므로 동작될 것입니다.
r71
76{{{#!if bp+=1, bb=bb+"0"
r72
77}}}}}}{{{#!if ap>bp
78{{{#!if bp+=1, bb=bb+"0"
79}}}}}}{{{#!if ap>bp
80{{{#!if bp+=1, bb=bb+"0"
81}}}}}}{{{#!if ap>bp
82{{{#!if bp+=1, bb=bb+"0"
83}}}}}}{{{#!if ap>bp
84{{{#!if bp+=1, bb=bb+"0"
r71
85}}}}}}
r72
86{{{#!if ap>bp
87{{{#!if bp+=1, bb=bb+"0"
88}}}}}}{{{#!if ap>bp
89{{{#!if bp+=1, bb=bb+"0"
90}}}}}}{{{#!if ap>bp
91{{{#!if bp+=1, bb=bb+"0"
92}}}}}}{{{#!if ap>bp
93{{{#!if bp+=1, bb=bb+"0"
94}}}}}}{{{#!if ap>bp
95{{{#!if bp+=1, bb=bb+"0"
96}}}}}}
97{{{#!if ap>bp
98{{{#!if bp+=1, bb=bb+"0"
99}}}}}}{{{#!if ap>bp
100{{{#!if bp+=1, bb=bb+"0"
101}}}}}}{{{#!if ap>bp
102{{{#!if bp+=1, bb=bb+"0"
103}}}}}}{{{#!if ap>bp
104{{{#!if bp+=1, bb=bb+"0"
105}}}}}}{{{#!if ap>bp
106{{{#!if bp+=1, bb=bb+"0"
107}}}}}}
108{{{#!if ap>bp
109{{{#!if bp+=1, bb=bb+"0"
110}}}}}}{{{#!if ap>bp
111{{{#!if bp+=1, bb=bb+"0"
112}}}}}}{{{#!if ap>bp
113{{{#!if bp+=1, bb=bb+"0"
114}}}}}}
r74
115소수점 아래 최대 18자리까지의 수를 취급하므로 최대 18회.
r72
116
117반대로 b의 소수점 자릿수가 많은 경우도 있습니다.
118{{{#!if bp>ap
119{{{#!if ap+=1, ab=ab+"0"
120}}}}}}{{{#!if bp>ap
121{{{#!if ap+=1, ab=ab+"0"
122}}}}}}{{{#!if bp>ap
123{{{#!if ap+=1, ab=ab+"0"
124}}}}}}{{{#!if bp>ap
125{{{#!if ap+=1, ab=ab+"0"
126}}}}}}{{{#!if bp>ap
127{{{#!if ap+=1, ab=ab+"0"
128}}}}}}
129{{{#!if bp>ap
130{{{#!if ap+=1, ab=ab+"0"
131}}}}}}{{{#!if bp>ap
132{{{#!if ap+=1, ab=ab+"0"
133}}}}}}{{{#!if bp>ap
134{{{#!if ap+=1, ab=ab+"0"
135}}}}}}{{{#!if bp>ap
136{{{#!if ap+=1, ab=ab+"0"
137}}}}}}{{{#!if bp>ap
138{{{#!if ap+=1, ab=ab+"0"
139}}}}}}
140{{{#!if bp>ap
141{{{#!if ap+=1, ab=ab+"0"
142}}}}}}{{{#!if bp>ap
143{{{#!if ap+=1, ab=ab+"0"
144}}}}}}{{{#!if bp>ap
145{{{#!if ap+=1, ab=ab+"0"
146}}}}}}{{{#!if bp>ap
147{{{#!if ap+=1, ab=ab+"0"
148}}}}}}{{{#!if bp>ap
149{{{#!if ap+=1, ab=ab+"0"
150}}}}}}
151{{{#!if bp>ap
152{{{#!if ap+=1, ab=ab+"0"
153}}}}}}{{{#!if bp>ap
154{{{#!if ap+=1, ab=ab+"0"
155}}}}}}{{{#!if bp>ap
156{{{#!if ap+=1, ab=ab+"0"
157}}}}}}
r76
158위의 과정을 거치게 되면 소수점 아래 최대 자릿수를 똑같이 맞춘 상태에서 계산하게 되므로 ap==bp가 됩니다.
r71
159
r76
160a가 음수인 경우 소수점 아래 값은 순 숫자만 표기된 상태이므로 양수 취급으로 되지 않게 소수점 아래 값인 ab에 음수 표기를 남깁니다.
r73
161{{{#!if as[0]==45
162{{{#!if ab="-"+ab
163}}}}}}
r76
164마찬가지로 b가 음수인 경우 b의 소수점 아래 값은 음수이므로 소수점 아래 값인 bb에 음수 표기를 남깁니다.
r73
165{{{#!if bs[0]==45
166{{{#!if bb="-"+bb
167}}}}}}
168
r81
169이때 rb를 계산합니다.
r70
170{{{#!if f=="+"
r81
171{{{#!if rb=(+ab)+(+bb)
r70
172}}}}}}
173{{{#!if f=="-"
r81
174{{{#!if rb=(+ab)-(+bb)
r70
175}}}}}}
r80
176
r74
177소수점 아래끼리 더한 자릿수가 얼마나 되는지 보기 위해 rb를 문자열로 바꿉니다.
r92
178이 때 rb가 0이 아닐 경우에만 문자열로 변환합니다.
179{{{#!if (+rb>0)||(+rb<0)
r74
180{{{#!if this.rb=rb.toString()
181}}}
r76
182문자열로 된 rb의 길이를 rp로 정의합니다.
r74
183{{{#!if this.rp=rb.length
184}}}
r92
185}}}
r101
186
r78
187rb가 음수이면 rb의 첫번째(0번 index)의 문자열에는 마이너스(-)가 들어갑니다. 이 때는 rp를 rb의 마이너스 문자열을 세지 않은 자릿수가 되도록 앞에서 정의했던 rb.length에서 1만큼 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 값이 고정되어 있으므로 rp처럼 줄일 필요가 없습니다.
r74
188{{{#!if rb[0]==45
r75
189{{{#!if rp=rp-1
r74
190}}}}}}
r62
191
r101
192ru값이 어떤지 보고 각 경우 rb값이 어떠한가에 따라 rb만 정리하거나 rb와 ru 모두 정리합니다.
r111
193중복 처리를 막기 위해 변수 하나를 정의합니다.
194{{{#!if this.ps=false
195}}}
r80
196Case 1 : ru가 0보다 큰 경우
r76
197ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다.
r70
198{{{#!if ru>0
r80
199Case 1-1 : rb가 0 이상인 경우
r111
200{{{#!if (+rb>=0)&&(ps==false)
r78
201rb가 소수점 아래 자릿수를 초과하여 소수점 위의 수를 계산하게 생겼다면 ap=bp인 상황에서 rp>ap가 됩니다. rb는 첫 숫자가 1인 정수가 되므로 첫 숫자인 1을 삭제한 문자열로 정의합니다.
r76
202{{{#!if rp>ap
203{{{#!if ru=ru+1, rb=rb.substr(1, rp-1)
r74
204}}}}}}
r78
205rb가 소수점 아래 자릿수를 초과하지 않을 경우 rb를 다시 정의할 필요 없이 그대로 둡니다.
r76
206{{{#!if rp<=ap
r77
207}}}
r111
208{{{#!if ps=true
r78
209}}}
r111
210}}}
r78
211
r101
212Case 1-2 : rb가 음수인 경우 ru에서 1을 빌려옵니다. 1보다 작은 양수값에서 1보다 작은 양수값을 빼면 -1보다 작을 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다.
r111
213{{{#!if (+rb<0)&&(ps==false)
r78
214{{{#!if ru=ru-1
215}}}
r88
216rb의 자릿수인 rp만큼 10을 제곱한 값을 rb에서 증가시켜 rb를 재정의합니다. 그러면 rb는 양수가 됩니다. 그리고 rb를 다시 문자열로 변환합니다.
r109
217{{{#!if rb=10**rp+(+rb)
r78
218}}}{{{#!if rb=rb.toString()
219}}}
r111
220{{{#!if ps=true
221}}}}}}
r78
222정리과정을 끝냈으면 ru를 string으로 변환합니다.
223{{{#!if this.ru=ru.toString()
r76
224}}}}}}
225
r80
226Case 2 : ru가 0인 경우 ru가 0이 되면 rb의 값이 양수인지 음수인지에 따라 달라집니다.
r70
227{{{#!if ru==0
r80
228Case 2-1 : rb가 0 이상인 경우
r111
229{{{#!if (+rb>=0)&&(ps==false)
r78
230rb가 양수이면서 rb가 자릿수를 초과한 경우 rb는 첫 숫자가 1인 정수가 되므로 첫 숫자인 1을 삭제한 문자열로 정의합니다.
231{{{#!if rp>ap
232{{{#!if ru=ru+1, rb=rb.substr(1, rp-1)
r111
233}}}}}}{{{#!if ps=true
234}}}}}}
r80
235Case 2-2 : rb가 음수인 경우
r111
236{{{#!if (+rb<0)&&(ps==false)
r80
237rb가 음수이면서 rb가 자릿수를 초과한 경우 값이 0인 ru에 1을 빼야 합니다. 그리고 rb가 "-"+숫자 꼴이므로 문자열의 1번 index에 해당하는 1을 지워야 합니다. 앞에서 rb가 음수인 경우 rp는 rb의 마이너스(-)가 차지하는 자릿수를 계산하지 않은 값 곧 숫자들이 차지하는 자릿수이므로, rb를 길이가 rp-1인 숫자들로 다시 정의합니다.
r78
238{{{#!if rp>ap
r80
239{{{#!if ru=ru-1, rb=rb.substr(2, rp-1)
240}}}}}}
241rb가 자릿수를 초과하지 않은 경우 rb에서 "-"를 뺀 문자열로 rb를 다시 정의합니다.
r108
242{{{#!if rp<=ap
r81
243{{{#!if rb=rb.substr(1, rp)
r111
244}}}}}}{{{#!if ps=true
245}}}}}}
r78
246정리과정을 끝냈으면 ru를 string으로 변환합니다.
247{{{#!if this.ru=ru.toString()
r70
248}}}
r80
249-0.xxxx 같이 (ru==0인데) 연산결과가 -1보다 큰 음수로 나오는 경우 ru 문자열 앞에 "-"를 붙입니다.
250f가 "+"인지 "-"인지에 따라 처음 rb를 정의할 때 적었던 식을 다시 불러옵니다.
251{{{#!if ((f=="+")&&((+ab)+(+bb)<0))||((f=="-")&&((+ab)-(+bb)<0))
252{{{#!if ru="-"+ru
253}}}}}}
r78
254}}}
r79
255
r80
256Case 3 : ru가 0보다 작은 경우. 곧 -1 이하인 음수가 되는 경우.
r70
257{{{#!if ru<0
r81
258Case 3-1 : rb가 0 이하인 경우
r111
259{{{#!if (+rb<=0)&&(ps==false)
r81
260rb가 음수이면서 자릿수를 초과한 경우 ru에 -1을 빼고, rb의 음수기호(-)와 첫번째 숫자인 문자열 "1"을 뺀 문자열로 rb를 다시 정의합니다.
261{{{#!if rp>ap
r86
262{{{#!if rb=rb.substr(2, rp-1)
r70
263}}}
r86
264}}}
r81
265rb가 자릿수를 초과하지 않은 경우 음수기호만을 뺀 문자열로 다시 정의합니다. 단, rb가 0이 되면 rp==1이 되므로 rb==0인 경우는 제외합니다.
r108
266{{{#!if (rp<=ap)&&(+rb<0)
r81
267{{{#!if rb=rb.substr(1, rp-1)
r111
268}}}}}}{{{#!if ps=true
269}}}}}}
r88
270Case 3-2 : rb가 0보다 큰 경우. 소수점 아래 부분을 보면 -1보다 큰 음수값에서 -1보다 큰 음수값을 빼면 1보다 클 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다.
r111
271{{{#!if (+rb>0)&&(ps==false)
r88
272ru<=-1이므로 ru+1를 해도 최대 0이 됩니다.
273{{{#!if ru=ru+1
r80
274}}}
r88
275rb>0에서 rb은 음수(계산결과)의 음수(마이너스값이 줄어듦)이므로 rb의 자릿수인 rp만큼 10을 제곱한 값에서 rb을 '''뺀''' 값으로 rb를 재정의합니다. 그러면 rb는 양수이지만 계산결과인 음수에 맞춘 값이 됩니다. 그리고 rb를 다시 문자열로 변환합니다. 변환합니다.
r109
276{{{#!if rb=10**rp-(+rb)
r88
277}}}{{{#!if rb=rb.toString()
r111
278}}}{{{#!if ps=true
279}}}}}}
r81
280정리과정을 끝냈으면 ru를 string으로 변환합니다.
281{{{#!if this.ru=ru.toString()
282}}}
283-0.xxxx 같이 (ru==0인데) 연산결과가 -1보다 큰 음수로 나오는 경우가 된다면 ru 문자열 앞에 "-"를 붙입니다.
284{{{#!if +ru==0
285{{{#!if ru="-"+ru
286}}}}}}
287}}}
288여기까지가 소수점 아래 자릿수 숫자들의 계산과정입니다.
289}}}
r76
290
r101
291a와 b 모두 정수인 경우 ap, bp는 모두 0이 되므로 ru만을 그대로 문자열로 바꾸면 되며 소수점 아래(rb)는 표기해야 할 필요가 없으므로 rb="", (소수점 아래 자릿수)rp=0을 반환합니다.
292{{{#!if (ap==0)&&(bp==0)
293{{{#!if this.ru=ru.toString(), rb="", rp=0+0
294}}}}}}
295
r102
296rb==0인 경우 rb="", rp=0을 반환합니다.
297{{{#!if +rb==0
298{{{#!if rb="", rp=0+0
299}}}}}}
300
r106
301이제 rb=""이 아닌 경우 소수점 아래 숫자 정리를 합니다.
302rp를 rb의 문자열 길이로 다시 정의합니다.
r104
303{{{#!if rb!=""
304{{{#!if this.rp=rb.length
r110
305}}}
r104
306
r106
307+"000100"을 숫자로 바꾸면 100이 되는 문제가 있습니다. 이처럼 소수점 아래 자릿수를 연산한 결과를 문자열로 바꿨을 때 기존 소수점 아래 자릿수보다 작은 길이가 나오면 앞쪽에 0을 보충합니다.
308앞에서 ap,bp를 똑같이 맞췄으므로 ap를 가져옵니다. 자릿수가 모자랄 경우 0을 하나씩 보충합니다.
309{{{#!if rp<ap
r107
310{{{#!if rb="0"+rb
r106
311}}}}}}
312{{{#!if rp<ap
r107
313{{{#!if rb="0"+rb
r106
314}}}}}}
315{{{#!if rp<ap
r107
316{{{#!if rb="0"+rb
r106
317}}}}}}
318{{{#!if rp<ap
r107
319{{{#!if rb="0"+rb
r106
320}}}}}}
321{{{#!if rp<ap
r107
322{{{#!if rb="0"+rb
r106
323}}}}}}
324
325{{{#!if rp<ap
r107
326{{{#!if rb="0"+rb
r106
327}}}}}}
328{{{#!if rp<ap
r107
329{{{#!if rb="0"+rb
r106
330}}}}}}
331{{{#!if rp<ap
r107
332{{{#!if rb="0"+rb
r106
333}}}}}}
334{{{#!if rp<ap
r107
335{{{#!if rb="0"+rb
r106
336}}}}}}
337{{{#!if rp<ap
r107
338{{{#!if rb="0"+rb
r106
339}}}}}}
340
341{{{#!if rp<ap
r107
342{{{#!if rb="0"+rb
r106
343}}}}}}
344{{{#!if rp<ap
r107
345{{{#!if rb="0"+rb
r106
346}}}}}}
347{{{#!if rp<ap
r107
348{{{#!if rb="0"+rb
r106
349}}}}}}
350{{{#!if rp<ap
r107
351{{{#!if rb="0"+rb
r106
352}}}}}}
353{{{#!if rp<ap
r107
354{{{#!if rb="0"+rb
r106
355}}}}}}
356
357{{{#!if rp<ap
r107
358{{{#!if rb="0"+rb
r106
359}}}}}}
360{{{#!if rp<ap
r107
361{{{#!if rb="0"+rb
r106
362}}}}}}
363{{{#!if rp<ap
r107
364{{{#!if rb="0"+rb
r106
365}}}}}}
366
367앞에 0을 채웠다면 이제, 소수점 아래로 나오는 숫자를 보고 마지막에서부터 0이 나오면 한 자리씩 지우는 과정을 시작합니다.
368rp를 rb의 문자열 길이로 다시 정의합니다.
369{{{#!if this.rp=rb.length
r110
370}}}
r106
371
r105
372마지막 문자의 번호는 (문자열 길이 - 1)입니다. 극단적으로 .10000 00000 00000 000 이 나올 수 있겠지만 18회 조사합니다.
373substr(0,0)으로 하면 ""이 됩니다.
374{{{#!if rb[rp-1]==48
375{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
376}}}}}}
377{{{#!if rb[rp-1]==48
378{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
379}}}}}}
380{{{#!if rb[rp-1]==48
381{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
382}}}}}}
383{{{#!if rb[rp-1]==48
384{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
385}}}}}}
386{{{#!if rb[rp-1]==48
387{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
388}}}}}}
389
390{{{#!if rb[rp-1]==48
391{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
392}}}}}}
393{{{#!if rb[rp-1]==48
394{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
395}}}}}}
396{{{#!if rb[rp-1]==48
397{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
398}}}}}}
399{{{#!if rb[rp-1]==48
400{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
401}}}}}}
402{{{#!if rb[rp-1]==48
403{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
404}}}}}}
405
406{{{#!if rb[rp-1]==48
407{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
408}}}}}}
409{{{#!if rb[rp-1]==48
410{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
411}}}}}}
412{{{#!if rb[rp-1]==48
413{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
414}}}}}}
415{{{#!if rb[rp-1]==48
416{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
417}}}}}}
418{{{#!if rb[rp-1]==48
419{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
420}}}}}}
421
422{{{#!if rb[rp-1]==48
423{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
424}}}}}}
425{{{#!if rb[rp-1]==48
426{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
427}}}}}}
428{{{#!if rb[rp-1]==48
429{{{#!if this.rb=rb.substr(0,rb-1), rp=rp-1
r110
430}}}}}}}}}
r105
431rb 정리를 이것으로 종료합니다.
432
r81
433여기까지가 덧셈 또는 뺄셈연산의 계산과정입니다.
434}}}
435
r67
436{{{#!if f=="*"
r69
43718자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
438다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
r67
439}}}
440
r65
441error code 03 번 : 오버플로
442error code 04 번 : 언더플로
443error code 05 번 : 0으로 나눌 수 없습니다.
r64
444
r91
445아래 출력 변수 설명
r90
446'''sa''' : searching a; '''sb''' : searching b; '''sf''' : searching f;
r91
447'''rl''' : result string length to output; '''i''' : index; '''p''' : a point of string(s);
448ru는 계산결과에서 소수점 위 자리이므로, dot(.)이 나오지 않습니다.
r67
449##여기까지 주석(주석 아님)
r102
450}}}}}}{{{#!wiki style="font-weight: 300; font-size: 20px;"
r89
451{{{#!if this.sa=(this.a!="")&&(this.a!=null), this.sb=(this.b!="")&&(this.b!=null), this.sf=(this.f=='+')||(this.f=='-')||(this.f=='*')||(this.f=='/')
452}}}{{{#!if !sa&&!sb&&!sf
r90
453변수를 입력하세요...
r102
454}}}{{{#!if !(sa&&sb&&sf)
455({{{#!if !sa
r89
456a{{{#!if !sb||!sf
457, }}}}}}{{{#!if !sb
458b{{{#!if !sf
459, }}}}}}{{{#!if !sf
r102
460f}}}를 입력하세요...)}}}{{{#!if sa&&sb&&sf
r82
461{{{#!if as[0]!=45
r53
462@a@}}}{{{#!if as[0]==45
463(@a@)}}}{{{#!if f=='+'
r67
464+}}}{{{#!if f=="-"
465-}}}{{{#!if f=="*"
466*}}}{{{#!if f=="/"
467/}}}{{{#!if bs[0]!=45
r53
468@b@}}}{{{#!if bs[0]==45
r94
469(@b@)}}}={{{#!if (f=='+')||(f=='-')
r91
470{{{#!if this.i=0+0, this.rl=ru.length
471##ru string
472}}}{{{#!if +i<rl
473##ru[0]
r100
474{{{#!if p=ru[i]
r91
475}}}{{{#!if p==45
476-}}}{{{#!if p==48
4770}}}{{{#!if p==49
4781}}}{{{#!if p==50
4792}}}{{{#!if p==51
4803}}}{{{#!if p==52
4814}}}{{{#!if p==53
4825}}}{{{#!if p==54
4836}}}{{{#!if p==55
4847}}}{{{#!if p==56
4858}}}{{{#!if p==57
r100
4869}}}{{{#!if i+=1
r91
487}}}}}}{{{#!if +i<rl
488##ru[1]
r100
489{{{#!if p=ru[i]
r91
490}}}{{{#!if p==48
4910}}}{{{#!if p==49
4921}}}{{{#!if p==50
4932}}}{{{#!if p==51
4943}}}{{{#!if p==52
4954}}}{{{#!if p==53
4965}}}{{{#!if p==54
4976}}}{{{#!if p==55
4987}}}{{{#!if p==56
4998}}}{{{#!if p==57
r100
5009}}}{{{#!if i+=1
r91
501}}}}}}{{{#!if +i<rl
502##ru[2]
r100
503{{{#!if p=ru[i]
r91
504}}}{{{#!if p==48
5050}}}{{{#!if p==49
5061}}}{{{#!if p==50
5072}}}{{{#!if p==51
5083}}}{{{#!if p==52
5094}}}{{{#!if p==53
5105}}}{{{#!if p==54
5116}}}{{{#!if p==55
5127}}}{{{#!if p==56
5138}}}{{{#!if p==57
r100
5149}}}{{{#!if i+=1
r91
515}}}}}}{{{#!if +i<rl
516##ru[3]
r100
517{{{#!if p=ru[i]
r91
518}}}{{{#!if p==48
5190}}}{{{#!if p==49
5201}}}{{{#!if p==50
5212}}}{{{#!if p==51
5223}}}{{{#!if p==52
5234}}}{{{#!if p==53
5245}}}{{{#!if p==54
5256}}}{{{#!if p==55
5267}}}{{{#!if p==56
5278}}}{{{#!if p==57
r100
5289}}}{{{#!if i+=1
r91
529}}}}}}{{{#!if +i<rl
530##ru[4]
r100
531{{{#!if p=ru[i]
r91
532}}}{{{#!if p==48
5330}}}{{{#!if p==49
5341}}}{{{#!if p==50
5352}}}{{{#!if p==51
5363}}}{{{#!if p==52
5374}}}{{{#!if p==53
5385}}}{{{#!if p==54
5396}}}{{{#!if p==55
5407}}}{{{#!if p==56
5418}}}{{{#!if p==57
r100
5429}}}{{{#!if i+=1
r91
543}}}}}}{{{#!if +i<rl
544##ru[5]
r100
545{{{#!if p=ru[i]
r91
546}}}{{{#!if p==48
5470}}}{{{#!if p==49
5481}}}{{{#!if p==50
5492}}}{{{#!if p==51
5503}}}{{{#!if p==52
5514}}}{{{#!if p==53
5525}}}{{{#!if p==54
5536}}}{{{#!if p==55
5547}}}{{{#!if p==56
5558}}}{{{#!if p==57
r100
5569}}}{{{#!if i+=1
r91
557}}}}}}{{{#!if +i<rl
558##ru[6]
r100
559{{{#!if p=ru[i]
r91
560}}}{{{#!if p==48
5610}}}{{{#!if p==49
5621}}}{{{#!if p==50
5632}}}{{{#!if p==51
5643}}}{{{#!if p==52
5654}}}{{{#!if p==53
5665}}}{{{#!if p==54
5676}}}{{{#!if p==55
5687}}}{{{#!if p==56
5698}}}{{{#!if p==57
r100
5709}}}{{{#!if i+=1
r91
571}}}}}}{{{#!if +i<rl
572##ru[7]
r100
573{{{#!if p=ru[i]
r91
574}}}{{{#!if p==48
5750}}}{{{#!if p==49
5761}}}{{{#!if p==50
5772}}}{{{#!if p==51
5783}}}{{{#!if p==52
5794}}}{{{#!if p==53
5805}}}{{{#!if p==54
5816}}}{{{#!if p==55
5827}}}{{{#!if p==56
5838}}}{{{#!if p==57
r100
5849}}}{{{#!if i+=1
r91
585}}}}}}{{{#!if +i<rl
586##ru[8]
r100
587{{{#!if p=ru[i]
r91
588}}}{{{#!if p==48
5890}}}{{{#!if p==49
5901}}}{{{#!if p==50
5912}}}{{{#!if p==51
5923}}}{{{#!if p==52
5934}}}{{{#!if p==53
5945}}}{{{#!if p==54
5956}}}{{{#!if p==55
5967}}}{{{#!if p==56
5978}}}{{{#!if p==57
r100
5989}}}{{{#!if i+=1
r91
599}}}}}}{{{#!if +i<rl
600##ru[9]
r100
601{{{#!if p=ru[i]
r91
602}}}{{{#!if p==48
6030}}}{{{#!if p==49
6041}}}{{{#!if p==50
6052}}}{{{#!if p==51
6063}}}{{{#!if p==52
6074}}}{{{#!if p==53
6085}}}{{{#!if p==54
6096}}}{{{#!if p==55
6107}}}{{{#!if p==56
6118}}}{{{#!if p==57
r100
6129}}}{{{#!if i+=1
r91
613}}}}}}{{{#!if +i<rl
614##ru[10]
r100
615{{{#!if p=ru[i]
r91
616}}}{{{#!if p==48
6170}}}{{{#!if p==49
6181}}}{{{#!if p==50
6192}}}{{{#!if p==51
6203}}}{{{#!if p==52
6214}}}{{{#!if p==53
6225}}}{{{#!if p==54
6236}}}{{{#!if p==55
6247}}}{{{#!if p==56
6258}}}{{{#!if p==57
r100
6269}}}{{{#!if i+=1
r91
627}}}}}}{{{#!if +i<rl
628##ru[11]
r100
629{{{#!if p=ru[i]
r91
630}}}{{{#!if p==48
6310}}}{{{#!if p==49
6321}}}{{{#!if p==50
6332}}}{{{#!if p==51
6343}}}{{{#!if p==52
6354}}}{{{#!if p==53
6365}}}{{{#!if p==54
6376}}}{{{#!if p==55
6387}}}{{{#!if p==56
6398}}}{{{#!if p==57
r100
6409}}}{{{#!if i+=1
r91
641}}}}}}{{{#!if +i<rl
642##ru[12]
r100
643{{{#!if p=ru[i]
r91
644}}}{{{#!if p==48
6450}}}{{{#!if p==49
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
r100
6549}}}{{{#!if i+=1
r91
655}}}}}}{{{#!if +i<rl
656##ru[13]
r100
657{{{#!if p=ru[i]
r91
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
r100
6689}}}{{{#!if i+=1
r91
669}}}}}}{{{#!if +i<rl
670##ru[14]
r100
671{{{#!if p=ru[i]
r91
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
r100
6829}}}{{{#!if i+=1
r91
683}}}}}}{{{#!if +i<rl
684##ru[15]
r100
685{{{#!if p=ru[i]
r91
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
r100
6969}}}{{{#!if i+=1
r91
697}}}}}}{{{#!if +i<rl
698##ru[16]
r100
699{{{#!if p=ru[i]
r91
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
r100
7109}}}{{{#!if i+=1
r91
711}}}}}}{{{#!if +i<rl
712##ru[17]
r100
713{{{#!if p=ru[i]
r91
714}}}{{{#!if p==48
7150}}}{{{#!if p==49
7161}}}{{{#!if p==50
7172}}}{{{#!if p==51
7183}}}{{{#!if p==52
7194}}}{{{#!if p==53
7205}}}{{{#!if p==54
7216}}}{{{#!if p==55
7227}}}{{{#!if p==56
7238}}}{{{#!if p==57
r100
7249}}}{{{#!if i+=1
r91
725}}}}}}{{{#!if +i<rl
726##ru[18]
r100
727{{{#!if p=ru[i]
r91
728}}}{{{#!if p==48
7290}}}{{{#!if p==49
7301}}}{{{#!if p==50
7312}}}{{{#!if p==51
7323}}}{{{#!if p==52
7334}}}{{{#!if p==53
7345}}}{{{#!if p==54
7356}}}{{{#!if p==55
7367}}}{{{#!if p==56
7378}}}{{{#!if p==57
r100
7389}}}{{{#!if i+=1
r91
739}}}}}}{{{#!if +i<rl
740##ru[19]
r100
741{{{#!if p=ru[i]
r91
742}}}{{{#!if p==48
7430}}}{{{#!if p==49
7441}}}{{{#!if p==50
7452}}}{{{#!if p==51
7463}}}{{{#!if p==52
7474}}}{{{#!if p==53
7485}}}{{{#!if p==54
7496}}}{{{#!if p==55
7507}}}{{{#!if p==56
7518}}}{{{#!if p==57
r100
7529}}}{{{#!if i+=1
r91
753}}}}}}{{{#!if +i<rl
754##ru[20] -1,000,000,000,000,000,000 같은 결과가 나올 경우.
r100
755{{{#!if p=ru[i]
r91
756}}}{{{#!if p==48
7570}}}{{{#!if p==49
7581}}}{{{#!if p==50
7592}}}{{{#!if p==51
7603}}}{{{#!if p==52
7614}}}{{{#!if p==53
7625}}}{{{#!if p==54
7636}}}{{{#!if p==55
7647}}}{{{#!if p==56
7658}}}{{{#!if p==57
r100
7669}}}{{{#!if i+=1
r103
767}}}}}}{{{#!if +rp!=0
r105
768##rb string, decimal point marking
769{{{#!if i=0+0
770}}}.{{{#!if +i<rp
771##rb[0]
772{{{#!if p=rb[i]
773}}}{{{#!if p==48
7740}}}{{{#!if p==49
7751}}}{{{#!if p==50
7762}}}{{{#!if p==51
7773}}}{{{#!if p==52
7784}}}{{{#!if p==53
7795}}}{{{#!if p==54
7806}}}{{{#!if p==55
7817}}}{{{#!if p==56
7828}}}{{{#!if p==57
7839}}}{{{#!if i+=1
784}}}}}}{{{#!if +i<rp
785##rb[1]
786{{{#!if p=rb[i]
787}}}{{{#!if p==48
7880}}}{{{#!if p==49
7891}}}{{{#!if p==50
7902}}}{{{#!if p==51
7913}}}{{{#!if p==52
7924}}}{{{#!if p==53
7935}}}{{{#!if p==54
7946}}}{{{#!if p==55
7957}}}{{{#!if p==56
7968}}}{{{#!if p==57
7979}}}{{{#!if i+=1
798}}}}}}{{{#!if +i<rp
799##rb[2]
800{{{#!if p=rb[i]
801}}}{{{#!if p==48
8020}}}{{{#!if p==49
8031}}}{{{#!if p==50
8042}}}{{{#!if p==51
8053}}}{{{#!if p==52
8064}}}{{{#!if p==53
8075}}}{{{#!if p==54
8086}}}{{{#!if p==55
8097}}}{{{#!if p==56
8108}}}{{{#!if p==57
8119}}}{{{#!if i+=1
812}}}}}}{{{#!if +i<rp
813##rb[3]
814{{{#!if p=rb[i]
815}}}{{{#!if p==48
8160}}}{{{#!if p==49
8171}}}{{{#!if p==50
8182}}}{{{#!if p==51
8193}}}{{{#!if p==52
8204}}}{{{#!if p==53
8215}}}{{{#!if p==54
8226}}}{{{#!if p==55
8237}}}{{{#!if p==56
8248}}}{{{#!if p==57
8259}}}{{{#!if i+=1
826}}}}}}{{{#!if +i<rp
827##rb[4]
828{{{#!if p=rb[i]
829}}}{{{#!if p==48
8300}}}{{{#!if p==49
8311}}}{{{#!if p==50
8322}}}{{{#!if p==51
8333}}}{{{#!if p==52
8344}}}{{{#!if p==53
8355}}}{{{#!if p==54
8366}}}{{{#!if p==55
8377}}}{{{#!if p==56
8388}}}{{{#!if p==57
8399}}}{{{#!if i+=1
840}}}}}}{{{#!if +i<rp
841##rb[5]
842{{{#!if p=rb[i]
843}}}{{{#!if p==48
8440}}}{{{#!if p==49
8451}}}{{{#!if p==50
8462}}}{{{#!if p==51
8473}}}{{{#!if p==52
8484}}}{{{#!if p==53
8495}}}{{{#!if p==54
8506}}}{{{#!if p==55
8517}}}{{{#!if p==56
8528}}}{{{#!if p==57
8539}}}{{{#!if i+=1
854}}}}}}{{{#!if +i<rp
855##rb[6]
856{{{#!if p=rb[i]
857}}}{{{#!if p==48
8580}}}{{{#!if p==49
8591}}}{{{#!if p==50
8602}}}{{{#!if p==51
8613}}}{{{#!if p==52
8624}}}{{{#!if p==53
8635}}}{{{#!if p==54
8646}}}{{{#!if p==55
8657}}}{{{#!if p==56
8668}}}{{{#!if p==57
8679}}}{{{#!if i+=1
868}}}}}}{{{#!if +i<rp
869##rb[7]
870{{{#!if p=rb[i]
871}}}{{{#!if p==48
8720}}}{{{#!if p==49
8731}}}{{{#!if p==50
8742}}}{{{#!if p==51
8753}}}{{{#!if p==52
8764}}}{{{#!if p==53
8775}}}{{{#!if p==54
8786}}}{{{#!if p==55
8797}}}{{{#!if p==56
8808}}}{{{#!if p==57
8819}}}{{{#!if i+=1
882}}}}}}{{{#!if +i<rp
883##rb[8]
884{{{#!if p=rb[i]
885}}}{{{#!if p==48
8860}}}{{{#!if p==49
8871}}}{{{#!if p==50
8882}}}{{{#!if p==51
8893}}}{{{#!if p==52
8904}}}{{{#!if p==53
8915}}}{{{#!if p==54
8926}}}{{{#!if p==55
8937}}}{{{#!if p==56
8948}}}{{{#!if p==57
8959}}}{{{#!if i+=1
896}}}}}}{{{#!if +i<rp
897##rb[9]
898{{{#!if p=rb[i]
899}}}{{{#!if p==48
9000}}}{{{#!if p==49
9011}}}{{{#!if p==50
9022}}}{{{#!if p==51
9033}}}{{{#!if p==52
9044}}}{{{#!if p==53
9055}}}{{{#!if p==54
9066}}}{{{#!if p==55
9077}}}{{{#!if p==56
9088}}}{{{#!if p==57
9099}}}{{{#!if i+=1
910}}}}}}{{{#!if +i<rp
911##rb[10]
912{{{#!if p=rb[i]
913}}}{{{#!if p==48
9140}}}{{{#!if p==49
9151}}}{{{#!if p==50
9162}}}{{{#!if p==51
9173}}}{{{#!if p==52
9184}}}{{{#!if p==53
9195}}}{{{#!if p==54
9206}}}{{{#!if p==55
9217}}}{{{#!if p==56
9228}}}{{{#!if p==57
9239}}}{{{#!if i+=1
924}}}}}}{{{#!if +i<rp
925##rb[11]
926{{{#!if p=rb[i]
927}}}{{{#!if p==48
9280}}}{{{#!if p==49
9291}}}{{{#!if p==50
9302}}}{{{#!if p==51
9313}}}{{{#!if p==52
9324}}}{{{#!if p==53
9335}}}{{{#!if p==54
9346}}}{{{#!if p==55
9357}}}{{{#!if p==56
9368}}}{{{#!if p==57
9379}}}{{{#!if i+=1
938}}}}}}{{{#!if +i<rp
939##rb[12]
940{{{#!if p=rb[i]
941}}}{{{#!if p==48
9420}}}{{{#!if p==49
9431}}}{{{#!if p==50
9442}}}{{{#!if p==51
9453}}}{{{#!if p==52
9464}}}{{{#!if p==53
9475}}}{{{#!if p==54
9486}}}{{{#!if p==55
9497}}}{{{#!if p==56
9508}}}{{{#!if p==57
9519}}}{{{#!if i+=1
952}}}}}}{{{#!if +i<rp
953##rb[13]
954{{{#!if p=rb[i]
955}}}{{{#!if p==48
9560}}}{{{#!if p==49
9571}}}{{{#!if p==50
9582}}}{{{#!if p==51
9593}}}{{{#!if p==52
9604}}}{{{#!if p==53
9615}}}{{{#!if p==54
9626}}}{{{#!if p==55
9637}}}{{{#!if p==56
9648}}}{{{#!if p==57
9659}}}{{{#!if i+=1
966}}}}}}{{{#!if +i<rp
967##rb[14]
968{{{#!if p=rb[i]
969}}}{{{#!if p==48
9700}}}{{{#!if p==49
9711}}}{{{#!if p==50
9722}}}{{{#!if p==51
9733}}}{{{#!if p==52
9744}}}{{{#!if p==53
9755}}}{{{#!if p==54
9766}}}{{{#!if p==55
9777}}}{{{#!if p==56
9788}}}{{{#!if p==57
9799}}}{{{#!if i+=1
980}}}}}}{{{#!if +i<rp
981##rb[15]
982{{{#!if p=rb[i]
983}}}{{{#!if p==48
9840}}}{{{#!if p==49
9851}}}{{{#!if p==50
9862}}}{{{#!if p==51
9873}}}{{{#!if p==52
9884}}}{{{#!if p==53
9895}}}{{{#!if p==54
9906}}}{{{#!if p==55
9917}}}{{{#!if p==56
9928}}}{{{#!if p==57
9939}}}{{{#!if i+=1
994}}}}}}{{{#!if +i<rp
995##rb[16]
996{{{#!if p=rb[i]
997}}}{{{#!if p==48
9980}}}{{{#!if p==49
9991}}}{{{#!if p==50
10002}}}{{{#!if p==51
10013}}}{{{#!if p==52
10024}}}{{{#!if p==53
10035}}}{{{#!if p==54
10046}}}{{{#!if p==55
10057}}}{{{#!if p==56
10068}}}{{{#!if p==57
10079}}}{{{#!if i+=1
1008}}}}}}{{{#!if +i<rp
1009##rb[17]
1010{{{#!if p=rb[i]
1011}}}{{{#!if p==48
10120}}}{{{#!if p==49
10131}}}{{{#!if p==50
10142}}}{{{#!if p==51
10153}}}{{{#!if p==52
10164}}}{{{#!if p==53
10175}}}{{{#!if p==54
10186}}}{{{#!if p==55
10197}}}{{{#!if p==56
10208}}}{{{#!if p==57
10219}}}{{{#!if i+=1
1022}}}}}}
r90
1023}}}
r94
1024}}}}}}}}}
r44
1025==# 2-1 #==
1026{{{#!wiki style="font-weight: 300; font-size: 20px"
r37
1027{{{#!if +a>=0
1028@a@}}}{{{#!if +a<0
r36
1029(@a@)}}} {{{#!if f == '+'
r40

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

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

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

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

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

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

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

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

(r16으로 되돌림)
1045##1
r11
1046{{{#!if p=r[o]
r9
1047}}}{{{#!if p==45
1048-}}}{{{#!if p==46
r14
1049{{{#!if d=true
r20
1050}}}}}}{{{#!if p==48
r9
10510}}}{{{#!if p==49
10521}}}{{{#!if p==50
10532}}}{{{#!if p==51
10543}}}{{{#!if p==52
10554}}}{{{#!if p==53
10565}}}{{{#!if p==54
10576}}}{{{#!if p==55
10587}}}{{{#!if p==56
10598}}}{{{#!if p==57
r41
10609}}}{{{#!if o+=1
r19
1061}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1062##2
r11
1063{{{#!if p=r[o]
r35
1064}}}{{{#!if p==46
r14
1065{{{#!if d=true
r20
1066}}}}}}{{{#!if p==48
r9
10670}}}{{{#!if p==49
10681}}}{{{#!if p==50
10692}}}{{{#!if p==51
10703}}}{{{#!if p==52
10714}}}{{{#!if p==53
10725}}}{{{#!if p==54
10736}}}{{{#!if p==55
10747}}}{{{#!if p==56
10758}}}{{{#!if p==57
r41
10769}}}{{{#!if o+=1
r23
1077}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1078##3
r11
1079{{{#!if p=r[o]
r35
1080}}}{{{#!if p==46
r14
1081{{{#!if d=true
r20
1082}}}}}}{{{#!if p==48
r9
10830}}}{{{#!if p==49
10841}}}{{{#!if p==50
10852}}}{{{#!if p==51
10863}}}{{{#!if p==52
10874}}}{{{#!if p==53
10885}}}{{{#!if p==54
10896}}}{{{#!if p==55
10907}}}{{{#!if p==56
10918}}}{{{#!if p==57
r41
10929}}}{{{#!if o+=1
r23
1093}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1094##4
r11
1095{{{#!if p=r[o]
r35
1096}}}{{{#!if p==46
r14
1097{{{#!if d=true
r20
1098}}}}}}{{{#!if p==48
r9
10990}}}{{{#!if p==49
11001}}}{{{#!if p==50
11012}}}{{{#!if p==51
11023}}}{{{#!if p==52
11034}}}{{{#!if p==53
11045}}}{{{#!if p==54
11056}}}{{{#!if p==55
11067}}}{{{#!if p==56
11078}}}{{{#!if p==57
r41
11089}}}{{{#!if o+=1
r23
1109}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1110##5
r11
1111{{{#!if p=r[o]
r35
1112}}}{{{#!if p==46
r14
1113{{{#!if d=true
r20
1114}}}}}}{{{#!if p==48
r9
11150}}}{{{#!if p==49
11161}}}{{{#!if p==50
11172}}}{{{#!if p==51
11183}}}{{{#!if p==52
11194}}}{{{#!if p==53
11205}}}{{{#!if p==54
11216}}}{{{#!if p==55
11227}}}{{{#!if p==56
11238}}}{{{#!if p==57
r41
11249}}}{{{#!if o+=1
r23
1125}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1126##6
r11
1127{{{#!if p=r[o]
r35
1128}}}{{{#!if p==46
r14
1129{{{#!if d=true
r20
1130}}}}}}{{{#!if p==48
r9
11310}}}{{{#!if p==49
11321}}}{{{#!if p==50
11332}}}{{{#!if p==51
11343}}}{{{#!if p==52
11354}}}{{{#!if p==53
11365}}}{{{#!if p==54
11376}}}{{{#!if p==55
11387}}}{{{#!if p==56
11398}}}{{{#!if p==57
r41
11409}}}{{{#!if o+=1
r23
1141}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1142##7
r11
1143{{{#!if p=r[o]
r35
1144}}}{{{#!if p==46
r14
1145{{{#!if d=true
r20
1146}}}}}}{{{#!if p==48
r9
11470}}}{{{#!if p==49
11481}}}{{{#!if p==50
11492}}}{{{#!if p==51
11503}}}{{{#!if p==52
11514}}}{{{#!if p==53
11525}}}{{{#!if p==54
11536}}}{{{#!if p==55
11547}}}{{{#!if p==56
11558}}}{{{#!if p==57
r41
11569}}}{{{#!if o+=1
r23
1157}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1158##8
r11
1159{{{#!if p=r[o]
r35
1160}}}{{{#!if p==46
r14
1161{{{#!if d=true
r20
1162}}}}}}{{{#!if p==48
r9
11630}}}{{{#!if p==49
11641}}}{{{#!if p==50
11652}}}{{{#!if p==51
11663}}}{{{#!if p==52
11674}}}{{{#!if p==53
11685}}}{{{#!if p==54
11696}}}{{{#!if p==55
11707}}}{{{#!if p==56
11718}}}{{{#!if p==57
r41
11729}}}{{{#!if o+=1
r23
1173}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1174##9
r11
1175{{{#!if p=r[o]
r35
1176}}}{{{#!if p==46
r14
1177{{{#!if d=true
r20
1178}}}}}}{{{#!if p==48
r9
11790}}}{{{#!if p==49
11801}}}{{{#!if p==50
11812}}}{{{#!if p==51
11823}}}{{{#!if p==52
11834}}}{{{#!if p==53
11845}}}{{{#!if p==54
11856}}}{{{#!if p==55
11867}}}{{{#!if p==56
11878}}}{{{#!if p==57
r41
11889}}}{{{#!if o+=1
r23
1189}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1190##10
r11
1191{{{#!if p=r[o]
r35
1192}}}{{{#!if p==46
r14
1193{{{#!if d=true
r20
1194}}}}}}{{{#!if p==48
r9
11950}}}{{{#!if p==49
11961}}}{{{#!if p==50
11972}}}{{{#!if p==51
11983}}}{{{#!if p==52
11994}}}{{{#!if p==53
12005}}}{{{#!if p==54
12016}}}{{{#!if p==55
12027}}}{{{#!if p==56
12038}}}{{{#!if p==57
r41
12049}}}{{{#!if o+=1
r23
1205}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1206##11
r11
1207{{{#!if p=r[o]
r35
1208}}}{{{#!if p==46
r14
1209{{{#!if d=true
r20
1210}}}}}}{{{#!if p==48
r9
12110}}}{{{#!if p==49
12121}}}{{{#!if p==50
12132}}}{{{#!if p==51
12143}}}{{{#!if p==52
12154}}}{{{#!if p==53
12165}}}{{{#!if p==54
12176}}}{{{#!if p==55
12187}}}{{{#!if p==56
12198}}}{{{#!if p==57
r41
12209}}}{{{#!if o+=1
r23
1221}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1222##12
r11
1223{{{#!if p=r[o]
r35
1224}}}{{{#!if p==46
r14
1225{{{#!if d=true
r20
1226}}}}}}{{{#!if p==48
r9
12270}}}{{{#!if p==49
12281}}}{{{#!if p==50
12292}}}{{{#!if p==51
12303}}}{{{#!if p==52
12314}}}{{{#!if p==53
12325}}}{{{#!if p==54
12336}}}{{{#!if p==55
12347}}}{{{#!if p==56
12358}}}{{{#!if p==57
r41
12369}}}{{{#!if o+=1
r23
1237}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1238##13
r11
1239{{{#!if p=r[o]
r35
1240}}}{{{#!if p==46
r14
1241{{{#!if d=true
r20
1242}}}}}}{{{#!if p==48
r9
12430}}}{{{#!if p==49
12441}}}{{{#!if p==50
12452}}}{{{#!if p==51
12463}}}{{{#!if p==52
12474}}}{{{#!if p==53
12485}}}{{{#!if p==54
12496}}}{{{#!if p==55
12507}}}{{{#!if p==56
12518}}}{{{#!if p==57
r41
12529}}}{{{#!if o+=1
r23
1253}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1254##14
r11
1255{{{#!if p=r[o]
r35
1256}}}{{{#!if p==46
r14
1257{{{#!if d=true
r20
1258}}}}}}{{{#!if p==48
r9
12590}}}{{{#!if p==49
12601}}}{{{#!if p==50
12612}}}{{{#!if p==51
12623}}}{{{#!if p==52
12634}}}{{{#!if p==53
12645}}}{{{#!if p==54
12656}}}{{{#!if p==55
12667}}}{{{#!if p==56
12678}}}{{{#!if p==57
r41
12689}}}{{{#!if o+=1
r23
1269}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1270##15
r11
1271{{{#!if p=r[o]
r35
1272}}}{{{#!if p==46
r14
1273{{{#!if d=true
r20
1274}}}}}}{{{#!if p==48
r9
12750}}}{{{#!if p==49
12761}}}{{{#!if p==50
12772}}}{{{#!if p==51
12783}}}{{{#!if p==52
12794}}}{{{#!if p==53
12805}}}{{{#!if p==54
12816}}}{{{#!if p==55
12827}}}{{{#!if p==56
12838}}}{{{#!if p==57
r41
12849}}}{{{#!if o+=1
r23
1285}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1286##16
r11
1287{{{#!if p=r[o]
r35
1288}}}{{{#!if p==46
r14
1289{{{#!if d=true
r20
1290}}}}}}{{{#!if p==48
r9
12910}}}{{{#!if p==49
12921}}}{{{#!if p==50
12932}}}{{{#!if p==51
12943}}}{{{#!if p==52
12954}}}{{{#!if p==53
12965}}}{{{#!if p==54
12976}}}{{{#!if p==55
12987}}}{{{#!if p==56
12998}}}{{{#!if p==57
r41
13009}}}{{{#!if o+=1
r23
1301}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1302##17
r11
1303{{{#!if p=r[o]
r35
1304}}}{{{#!if p==46
r14
1305{{{#!if d=true
r20
1306}}}}}}{{{#!if p==48
r9
13070}}}{{{#!if p==49
13081}}}{{{#!if p==50
13092}}}{{{#!if p==51
13103}}}{{{#!if p==52
13114}}}{{{#!if p==53
13125}}}{{{#!if p==54
13136}}}{{{#!if p==55
13147}}}{{{#!if p==56
13158}}}{{{#!if p==57
r41
13169}}}{{{#!if o+=1
r23
1317}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1318##18
r11
1319{{{#!if p=r[o]
r35
1320}}}{{{#!if p==46
r14
1321{{{#!if d=true
r20
1322}}}}}}{{{#!if p==48
r9
13230}}}{{{#!if p==49
13241}}}{{{#!if p==50
13252}}}{{{#!if p==51
13263}}}{{{#!if p==52
13274}}}{{{#!if p==53
13285}}}{{{#!if p==54
13296}}}{{{#!if p==55
13307}}}{{{#!if p==56
13318}}}{{{#!if p==57
r41
13329}}}{{{#!if o+=1
r23
1333}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1334##19
r11
1335{{{#!if p=r[o]
r35
1336}}}{{{#!if p==46
r14
1337{{{#!if d=true
r20
1338}}}}}}{{{#!if p==48
r9
13390}}}{{{#!if p==49
13401}}}{{{#!if p==50
13412}}}{{{#!if p==51
13423}}}{{{#!if p==52
13434}}}{{{#!if p==53
13445}}}{{{#!if p==54
13456}}}{{{#!if p==55
13467}}}{{{#!if p==56
13478}}}{{{#!if p==57
r41
13489}}}{{{#!if o+=1
r23
1349}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1350##20
r11
1351{{{#!if p=r[o]
r35
1352}}}{{{#!if p==46
r14
1353{{{#!if d=true
r20
1354}}}}}}{{{#!if p==48
r9
13550}}}{{{#!if p==49
13561}}}{{{#!if p==50
13572}}}{{{#!if p==51
13583}}}{{{#!if p==52
13594}}}{{{#!if p==53
13605}}}{{{#!if p==54
13616}}}{{{#!if p==55
13627}}}{{{#!if p==56
13638}}}{{{#!if p==57
r41
13649}}}{{{#!if o+=1
r20
1365}}}}}}{{{#!if o=0, l=u.length
1366}}}{{{#!if u[0]==45
1367##음수로 마이너스가 표시되면 넘기기
r41
1368{{{#!if o+=1
r20
1369}}}}}}{{{#!if l-o>2
1370##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r41
1371{{{#!if o+=1
r42
1372##일의 자리 넘기기
r32
1373}}}{{{#!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
1374##".000000"은 표기하지 않음. 소수점 표기
1375.{{{#!if o+=1
1376}}}}}}}}}{{{#!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
1377##1
r22
1378{{{#!if p=u[o]
r21
1379}}}{{{#!if p==48
r25
13800}}}{{{#!if p==49
r21
13811}}}{{{#!if p==50
13822}}}{{{#!if p==51
13833}}}{{{#!if p==52
13844}}}{{{#!if p==53
13855}}}{{{#!if p==54
13866}}}{{{#!if p==55
13877}}}{{{#!if p==56
13888}}}{{{#!if p==57
r41
13899}}}{{{#!if o+=1
r23
1390}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r21
1391##2
r22
1392{{{#!if p=u[o]
r21
1393}}}{{{#!if p==48
13940}}}{{{#!if p==49
13951}}}{{{#!if p==50
13962}}}{{{#!if p==51
13973}}}{{{#!if p==52
13984}}}{{{#!if p==53
13995}}}{{{#!if p==54
14006}}}{{{#!if p==55
14017}}}{{{#!if p==56
14028}}}{{{#!if p==57
r41
14039}}}{{{#!if o+=1
r23
1404}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r21
1405##3
r22
1406{{{#!if p=u[o]
r21
1407}}}{{{#!if p==48
14080}}}{{{#!if p==49
14091}}}{{{#!if p==50
14102}}}{{{#!if p==51
14113}}}{{{#!if p==52
14124}}}{{{#!if p==53
14135}}}{{{#!if p==54
14146}}}{{{#!if p==55
14157}}}{{{#!if p==56
14168}}}{{{#!if p==57
r41
14179}}}{{{#!if o+=1
r23
1418}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r21
1419##4
r22
1420{{{#!if p=u[o]
r21
1421}}}{{{#!if p==48
14220}}}{{{#!if p==49
14231}}}{{{#!if p==50
14242}}}{{{#!if p==51
14253}}}{{{#!if p==52
14264}}}{{{#!if p==53
14275}}}{{{#!if p==54
14286}}}{{{#!if p==55
14297}}}{{{#!if p==56
14308}}}{{{#!if p==57
r41
14319}}}{{{#!if o+=1
r23
1432}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r21
1433##5
r22
1434{{{#!if p=u[o]
r21
1435}}}{{{#!if p==48
14360}}}{{{#!if p==49
14371}}}{{{#!if p==50
14382}}}{{{#!if p==51
14393}}}{{{#!if p==52
14404}}}{{{#!if p==53
14415}}}{{{#!if p==54
14426}}}{{{#!if p==55
14437}}}{{{#!if p==56
14448}}}{{{#!if p==57
r41
14459}}}{{{#!if o+=1
r23
1446}}}}}}{{{#!if (o<l)&&(d==true)
r21
1447##6
r22
1448{{{#!if p=u[o]
r21
1449}}}{{{#!if p==48
r26
1450##"0" 미표기
1451}}}{{{#!if p==49
r21
14521}}}{{{#!if p==50
14532}}}{{{#!if p==51
14543}}}{{{#!if p==52
14554}}}{{{#!if p==53
14565}}}{{{#!if p==54
14576}}}{{{#!if p==55
14587}}}{{{#!if p==56
14598}}}{{{#!if p==57
r41
14609}}}{{{#!if o+=1
r34
1461}}}}}}}}}}}}