r117
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}}}
r114
265rb가 자릿수를 초과하지 않은 경우 rp는 음수기호를 제외한 숫자 자릿수이므로 rb를 음수기호만을 뺀 문자열로 다시 정의합니다. 단, rb가 0이 되면 rp==1이 되므로 rb==0인 경우는 제외합니다.
r108
266{{{#!if (rp<=ap)&&(+rb<0)
r113
267{{{#!if rb=rb.substr(1, rp)
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
r112
310{{{#!if rb="0"+rb, rp+=1
r106
311}}}}}}
312{{{#!if rp<ap
r112
313{{{#!if rb="0"+rb, rp+=1
r106
314}}}}}}
315{{{#!if rp<ap
r112
316{{{#!if rb="0"+rb, rp+=1
r106
317}}}}}}
318{{{#!if rp<ap
r112
319{{{#!if rb="0"+rb, rp+=1
r106
320}}}}}}
321{{{#!if rp<ap
r112
322{{{#!if rb="0"+rb, rp+=1
r106
323}}}}}}
324
325{{{#!if rp<ap
r112
326{{{#!if rb="0"+rb, rp+=1
r106
327}}}}}}
328{{{#!if rp<ap
r112
329{{{#!if rb="0"+rb, rp+=1
r106
330}}}}}}
331{{{#!if rp<ap
r112
332{{{#!if rb="0"+rb, rp+=1
r106
333}}}}}}
334{{{#!if rp<ap
r112
335{{{#!if rb="0"+rb, rp+=1
r106
336}}}}}}
337{{{#!if rp<ap
r112
338{{{#!if rb="0"+rb, rp+=1
r106
339}}}}}}
340
341{{{#!if rp<ap
r112
342{{{#!if rb="0"+rb, rp+=1
r106
343}}}}}}
344{{{#!if rp<ap
r112
345{{{#!if rb="0"+rb, rp+=1
r106
346}}}}}}
347{{{#!if rp<ap
r112
348{{{#!if rb="0"+rb, rp+=1
r106
349}}}}}}
350{{{#!if rp<ap
r112
351{{{#!if rb="0"+rb, rp+=1
r106
352}}}}}}
353{{{#!if rp<ap
r112
354{{{#!if rb="0"+rb, rp+=1
r106
355}}}}}}
356
357{{{#!if rp<ap
r112
358{{{#!if rb="0"+rb, rp+=1
r106
359}}}}}}
360{{{#!if rp<ap
r112
361{{{#!if rb="0"+rb, rp+=1
r106
362}}}}}}
363{{{#!if rp<ap
r112
364{{{#!if rb="0"+rb, rp+=1
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
r117
463(@a@)}}} {{{#!if as.length>=20
r115
464[br]}}}{{{#!if f=='+'
r67
465+}}}{{{#!if f=="-"
466-}}}{{{#!if f=="*"
467*}}}{{{#!if f=="/"
r115
468/}}} {{{#!if bs[0]!=45
r53
469@b@}}}{{{#!if bs[0]==45
r117
470(@b@)}}} {{{#!if (bs.length>=20)||(as.length+bs.length>=30)
r116
471[br]}}}= {{{#!if (f=='+')||(f=='-')
r91
472{{{#!if this.i=0+0, this.rl=ru.length
473##ru string
474}}}{{{#!if +i<rl
475##ru[0]
r100
476{{{#!if p=ru[i]
r91
477}}}{{{#!if p==45
478-}}}{{{#!if p==48
4790}}}{{{#!if p==49
4801}}}{{{#!if p==50
4812}}}{{{#!if p==51
4823}}}{{{#!if p==52
4834}}}{{{#!if p==53
4845}}}{{{#!if p==54
4856}}}{{{#!if p==55
4867}}}{{{#!if p==56
4878}}}{{{#!if p==57
r100
4889}}}{{{#!if i+=1
r91
489}}}}}}{{{#!if +i<rl
490##ru[1]
r100
491{{{#!if p=ru[i]
r91
492}}}{{{#!if p==48
4930}}}{{{#!if p==49
4941}}}{{{#!if p==50
4952}}}{{{#!if p==51
4963}}}{{{#!if p==52
4974}}}{{{#!if p==53
4985}}}{{{#!if p==54
4996}}}{{{#!if p==55
5007}}}{{{#!if p==56
5018}}}{{{#!if p==57
r100
5029}}}{{{#!if i+=1
r91
503}}}}}}{{{#!if +i<rl
504##ru[2]
r100
505{{{#!if p=ru[i]
r91
506}}}{{{#!if p==48
5070}}}{{{#!if p==49
5081}}}{{{#!if p==50
5092}}}{{{#!if p==51
5103}}}{{{#!if p==52
5114}}}{{{#!if p==53
5125}}}{{{#!if p==54
5136}}}{{{#!if p==55
5147}}}{{{#!if p==56
5158}}}{{{#!if p==57
r100
5169}}}{{{#!if i+=1
r91
517}}}}}}{{{#!if +i<rl
518##ru[3]
r100
519{{{#!if p=ru[i]
r91
520}}}{{{#!if p==48
5210}}}{{{#!if p==49
5221}}}{{{#!if p==50
5232}}}{{{#!if p==51
5243}}}{{{#!if p==52
5254}}}{{{#!if p==53
5265}}}{{{#!if p==54
5276}}}{{{#!if p==55
5287}}}{{{#!if p==56
5298}}}{{{#!if p==57
r100
5309}}}{{{#!if i+=1
r91
531}}}}}}{{{#!if +i<rl
532##ru[4]
r100
533{{{#!if p=ru[i]
r91
534}}}{{{#!if p==48
5350}}}{{{#!if p==49
5361}}}{{{#!if p==50
5372}}}{{{#!if p==51
5383}}}{{{#!if p==52
5394}}}{{{#!if p==53
5405}}}{{{#!if p==54
5416}}}{{{#!if p==55
5427}}}{{{#!if p==56
5438}}}{{{#!if p==57
r100
5449}}}{{{#!if i+=1
r91
545}}}}}}{{{#!if +i<rl
546##ru[5]
r100
547{{{#!if p=ru[i]
r91
548}}}{{{#!if p==48
5490}}}{{{#!if p==49
5501}}}{{{#!if p==50
5512}}}{{{#!if p==51
5523}}}{{{#!if p==52
5534}}}{{{#!if p==53
5545}}}{{{#!if p==54
5556}}}{{{#!if p==55
5567}}}{{{#!if p==56
5578}}}{{{#!if p==57
r100
5589}}}{{{#!if i+=1
r91
559}}}}}}{{{#!if +i<rl
560##ru[6]
r100
561{{{#!if p=ru[i]
r91
562}}}{{{#!if p==48
5630}}}{{{#!if p==49
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
r100
5729}}}{{{#!if i+=1
r91
573}}}}}}{{{#!if +i<rl
574##ru[7]
r100
575{{{#!if p=ru[i]
r91
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
r100
5869}}}{{{#!if i+=1
r91
587}}}}}}{{{#!if +i<rl
588##ru[8]
r100
589{{{#!if p=ru[i]
r91
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
r100
6009}}}{{{#!if i+=1
r91
601}}}}}}{{{#!if +i<rl
602##ru[9]
r100
603{{{#!if p=ru[i]
r91
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
r100
6149}}}{{{#!if i+=1
r91
615}}}}}}{{{#!if +i<rl
616##ru[10]
r100
617{{{#!if p=ru[i]
r91
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
r100
6289}}}{{{#!if i+=1
r91
629}}}}}}{{{#!if +i<rl
630##ru[11]
r100
631{{{#!if p=ru[i]
r91
632}}}{{{#!if p==48
6330}}}{{{#!if p==49
6341}}}{{{#!if p==50
6352}}}{{{#!if p==51
6363}}}{{{#!if p==52
6374}}}{{{#!if p==53
6385}}}{{{#!if p==54
6396}}}{{{#!if p==55
6407}}}{{{#!if p==56
6418}}}{{{#!if p==57
r100
6429}}}{{{#!if i+=1
r91
643}}}}}}{{{#!if +i<rl
644##ru[12]
r100
645{{{#!if p=ru[i]
r91
646}}}{{{#!if p==48
6470}}}{{{#!if p==49
6481}}}{{{#!if p==50
6492}}}{{{#!if p==51
6503}}}{{{#!if p==52
6514}}}{{{#!if p==53
6525}}}{{{#!if p==54
6536}}}{{{#!if p==55
6547}}}{{{#!if p==56
6558}}}{{{#!if p==57
r100
6569}}}{{{#!if i+=1
r91
657}}}}}}{{{#!if +i<rl
658##ru[13]
r100
659{{{#!if p=ru[i]
r91
660}}}{{{#!if p==48
6610}}}{{{#!if p==49
6621}}}{{{#!if p==50
6632}}}{{{#!if p==51
6643}}}{{{#!if p==52
6654}}}{{{#!if p==53
6665}}}{{{#!if p==54
6676}}}{{{#!if p==55
6687}}}{{{#!if p==56
6698}}}{{{#!if p==57
r100
6709}}}{{{#!if i+=1
r91
671}}}}}}{{{#!if +i<rl
672##ru[14]
r100
673{{{#!if p=ru[i]
r91
674}}}{{{#!if p==48
6750}}}{{{#!if p==49
6761}}}{{{#!if p==50
6772}}}{{{#!if p==51
6783}}}{{{#!if p==52
6794}}}{{{#!if p==53
6805}}}{{{#!if p==54
6816}}}{{{#!if p==55
6827}}}{{{#!if p==56
6838}}}{{{#!if p==57
r100
6849}}}{{{#!if i+=1
r91
685}}}}}}{{{#!if +i<rl
686##ru[15]
r100
687{{{#!if p=ru[i]
r91
688}}}{{{#!if p==48
6890}}}{{{#!if p==49
6901}}}{{{#!if p==50
6912}}}{{{#!if p==51
6923}}}{{{#!if p==52
6934}}}{{{#!if p==53
6945}}}{{{#!if p==54
6956}}}{{{#!if p==55
6967}}}{{{#!if p==56
6978}}}{{{#!if p==57
r100
6989}}}{{{#!if i+=1
r91
699}}}}}}{{{#!if +i<rl
700##ru[16]
r100
701{{{#!if p=ru[i]
r91
702}}}{{{#!if p==48
7030}}}{{{#!if p==49
7041}}}{{{#!if p==50
7052}}}{{{#!if p==51
7063}}}{{{#!if p==52
7074}}}{{{#!if p==53
7085}}}{{{#!if p==54
7096}}}{{{#!if p==55
7107}}}{{{#!if p==56
7118}}}{{{#!if p==57
r100
7129}}}{{{#!if i+=1
r91
713}}}}}}{{{#!if +i<rl
714##ru[17]
r100
715{{{#!if p=ru[i]
r91
716}}}{{{#!if p==48
7170}}}{{{#!if p==49
7181}}}{{{#!if p==50
7192}}}{{{#!if p==51
7203}}}{{{#!if p==52
7214}}}{{{#!if p==53
7225}}}{{{#!if p==54
7236}}}{{{#!if p==55
7247}}}{{{#!if p==56
7258}}}{{{#!if p==57
r100
7269}}}{{{#!if i+=1
r91
727}}}}}}{{{#!if +i<rl
728##ru[18]
r100
729{{{#!if p=ru[i]
r91
730}}}{{{#!if p==48
7310}}}{{{#!if p==49
7321}}}{{{#!if p==50
7332}}}{{{#!if p==51
7343}}}{{{#!if p==52
7354}}}{{{#!if p==53
7365}}}{{{#!if p==54
7376}}}{{{#!if p==55
7387}}}{{{#!if p==56
7398}}}{{{#!if p==57
r100
7409}}}{{{#!if i+=1
r91
741}}}}}}{{{#!if +i<rl
742##ru[19]
r100
743{{{#!if p=ru[i]
r91
744}}}{{{#!if p==48
7450}}}{{{#!if p==49
7461}}}{{{#!if p==50
7472}}}{{{#!if p==51
7483}}}{{{#!if p==52
7494}}}{{{#!if p==53
7505}}}{{{#!if p==54
7516}}}{{{#!if p==55
7527}}}{{{#!if p==56
7538}}}{{{#!if p==57
r100
7549}}}{{{#!if i+=1
r91
755}}}}}}{{{#!if +i<rl
756##ru[20] -1,000,000,000,000,000,000 같은 결과가 나올 경우.
r100
757{{{#!if p=ru[i]
r91
758}}}{{{#!if p==48
7590}}}{{{#!if p==49
7601}}}{{{#!if p==50
7612}}}{{{#!if p==51
7623}}}{{{#!if p==52
7634}}}{{{#!if p==53
7645}}}{{{#!if p==54
7656}}}{{{#!if p==55
7667}}}{{{#!if p==56
7678}}}{{{#!if p==57
r100
7689}}}{{{#!if i+=1
r103
769}}}}}}{{{#!if +rp!=0
r105
770##rb string, decimal point marking
771{{{#!if i=0+0
772}}}.{{{#!if +i<rp
773##rb[0]
774{{{#!if p=rb[i]
775}}}{{{#!if p==48
7760}}}{{{#!if p==49
7771}}}{{{#!if p==50
7782}}}{{{#!if p==51
7793}}}{{{#!if p==52
7804}}}{{{#!if p==53
7815}}}{{{#!if p==54
7826}}}{{{#!if p==55
7837}}}{{{#!if p==56
7848}}}{{{#!if p==57
7859}}}{{{#!if i+=1
786}}}}}}{{{#!if +i<rp
787##rb[1]
788{{{#!if p=rb[i]
789}}}{{{#!if p==48
7900}}}{{{#!if p==49
7911}}}{{{#!if p==50
7922}}}{{{#!if p==51
7933}}}{{{#!if p==52
7944}}}{{{#!if p==53
7955}}}{{{#!if p==54
7966}}}{{{#!if p==55
7977}}}{{{#!if p==56
7988}}}{{{#!if p==57
7999}}}{{{#!if i+=1
800}}}}}}{{{#!if +i<rp
801##rb[2]
802{{{#!if p=rb[i]
803}}}{{{#!if p==48
8040}}}{{{#!if p==49
8051}}}{{{#!if p==50
8062}}}{{{#!if p==51
8073}}}{{{#!if p==52
8084}}}{{{#!if p==53
8095}}}{{{#!if p==54
8106}}}{{{#!if p==55
8117}}}{{{#!if p==56
8128}}}{{{#!if p==57
8139}}}{{{#!if i+=1
814}}}}}}{{{#!if +i<rp
815##rb[3]
816{{{#!if p=rb[i]
817}}}{{{#!if p==48
8180}}}{{{#!if p==49
8191}}}{{{#!if p==50
8202}}}{{{#!if p==51
8213}}}{{{#!if p==52
8224}}}{{{#!if p==53
8235}}}{{{#!if p==54
8246}}}{{{#!if p==55
8257}}}{{{#!if p==56
8268}}}{{{#!if p==57
8279}}}{{{#!if i+=1
828}}}}}}{{{#!if +i<rp
829##rb[4]
830{{{#!if p=rb[i]
831}}}{{{#!if p==48
8320}}}{{{#!if p==49
8331}}}{{{#!if p==50
8342}}}{{{#!if p==51
8353}}}{{{#!if p==52
8364}}}{{{#!if p==53
8375}}}{{{#!if p==54
8386}}}{{{#!if p==55
8397}}}{{{#!if p==56
8408}}}{{{#!if p==57
8419}}}{{{#!if i+=1
842}}}}}}{{{#!if +i<rp
843##rb[5]
844{{{#!if p=rb[i]
845}}}{{{#!if p==48
8460}}}{{{#!if p==49
8471}}}{{{#!if p==50
8482}}}{{{#!if p==51
8493}}}{{{#!if p==52
8504}}}{{{#!if p==53
8515}}}{{{#!if p==54
8526}}}{{{#!if p==55
8537}}}{{{#!if p==56
8548}}}{{{#!if p==57
8559}}}{{{#!if i+=1
856}}}}}}{{{#!if +i<rp
857##rb[6]
858{{{#!if p=rb[i]
859}}}{{{#!if p==48
8600}}}{{{#!if p==49
8611}}}{{{#!if p==50
8622}}}{{{#!if p==51
8633}}}{{{#!if p==52
8644}}}{{{#!if p==53
8655}}}{{{#!if p==54
8666}}}{{{#!if p==55
8677}}}{{{#!if p==56
8688}}}{{{#!if p==57
8699}}}{{{#!if i+=1
870}}}}}}{{{#!if +i<rp
871##rb[7]
872{{{#!if p=rb[i]
873}}}{{{#!if p==48
8740}}}{{{#!if p==49
8751}}}{{{#!if p==50
8762}}}{{{#!if p==51
8773}}}{{{#!if p==52
8784}}}{{{#!if p==53
8795}}}{{{#!if p==54
8806}}}{{{#!if p==55
8817}}}{{{#!if p==56
8828}}}{{{#!if p==57
8839}}}{{{#!if i+=1
884}}}}}}{{{#!if +i<rp
885##rb[8]
886{{{#!if p=rb[i]
887}}}{{{#!if p==48
8880}}}{{{#!if p==49
8891}}}{{{#!if p==50
8902}}}{{{#!if p==51
8913}}}{{{#!if p==52
8924}}}{{{#!if p==53
8935}}}{{{#!if p==54
8946}}}{{{#!if p==55
8957}}}{{{#!if p==56
8968}}}{{{#!if p==57
8979}}}{{{#!if i+=1
898}}}}}}{{{#!if +i<rp
899##rb[9]
900{{{#!if p=rb[i]
901}}}{{{#!if p==48
9020}}}{{{#!if p==49
9031}}}{{{#!if p==50
9042}}}{{{#!if p==51
9053}}}{{{#!if p==52
9064}}}{{{#!if p==53
9075}}}{{{#!if p==54
9086}}}{{{#!if p==55
9097}}}{{{#!if p==56
9108}}}{{{#!if p==57
9119}}}{{{#!if i+=1
912}}}}}}{{{#!if +i<rp
913##rb[10]
914{{{#!if p=rb[i]
915}}}{{{#!if p==48
9160}}}{{{#!if p==49
9171}}}{{{#!if p==50
9182}}}{{{#!if p==51
9193}}}{{{#!if p==52
9204}}}{{{#!if p==53
9215}}}{{{#!if p==54
9226}}}{{{#!if p==55
9237}}}{{{#!if p==56
9248}}}{{{#!if p==57
9259}}}{{{#!if i+=1
926}}}}}}{{{#!if +i<rp
927##rb[11]
928{{{#!if p=rb[i]
929}}}{{{#!if p==48
9300}}}{{{#!if p==49
9311}}}{{{#!if p==50
9322}}}{{{#!if p==51
9333}}}{{{#!if p==52
9344}}}{{{#!if p==53
9355}}}{{{#!if p==54
9366}}}{{{#!if p==55
9377}}}{{{#!if p==56
9388}}}{{{#!if p==57
9399}}}{{{#!if i+=1
940}}}}}}{{{#!if +i<rp
941##rb[12]
942{{{#!if p=rb[i]
943}}}{{{#!if p==48
9440}}}{{{#!if p==49
9451}}}{{{#!if p==50
9462}}}{{{#!if p==51
9473}}}{{{#!if p==52
9484}}}{{{#!if p==53
9495}}}{{{#!if p==54
9506}}}{{{#!if p==55
9517}}}{{{#!if p==56
9528}}}{{{#!if p==57
9539}}}{{{#!if i+=1
954}}}}}}{{{#!if +i<rp
955##rb[13]
956{{{#!if p=rb[i]
957}}}{{{#!if p==48
9580}}}{{{#!if p==49
9591}}}{{{#!if p==50
9602}}}{{{#!if p==51
9613}}}{{{#!if p==52
9624}}}{{{#!if p==53
9635}}}{{{#!if p==54
9646}}}{{{#!if p==55
9657}}}{{{#!if p==56
9668}}}{{{#!if p==57
9679}}}{{{#!if i+=1
968}}}}}}{{{#!if +i<rp
969##rb[14]
970{{{#!if p=rb[i]
971}}}{{{#!if p==48
9720}}}{{{#!if p==49
9731}}}{{{#!if p==50
9742}}}{{{#!if p==51
9753}}}{{{#!if p==52
9764}}}{{{#!if p==53
9775}}}{{{#!if p==54
9786}}}{{{#!if p==55
9797}}}{{{#!if p==56
9808}}}{{{#!if p==57
9819}}}{{{#!if i+=1
982}}}}}}{{{#!if +i<rp
983##rb[15]
984{{{#!if p=rb[i]
985}}}{{{#!if p==48
9860}}}{{{#!if p==49
9871}}}{{{#!if p==50
9882}}}{{{#!if p==51
9893}}}{{{#!if p==52
9904}}}{{{#!if p==53
9915}}}{{{#!if p==54
9926}}}{{{#!if p==55
9937}}}{{{#!if p==56
9948}}}{{{#!if p==57
9959}}}{{{#!if i+=1
996}}}}}}{{{#!if +i<rp
997##rb[16]
998{{{#!if p=rb[i]
999}}}{{{#!if p==48
10000}}}{{{#!if p==49
10011}}}{{{#!if p==50
10022}}}{{{#!if p==51
10033}}}{{{#!if p==52
10044}}}{{{#!if p==53
10055}}}{{{#!if p==54
10066}}}{{{#!if p==55
10077}}}{{{#!if p==56
10088}}}{{{#!if p==57
10099}}}{{{#!if i+=1
1010}}}}}}{{{#!if +i<rp
1011##rb[17]
1012{{{#!if p=rb[i]
1013}}}{{{#!if p==48
10140}}}{{{#!if p==49
10151}}}{{{#!if p==50
10162}}}{{{#!if p==51
10173}}}{{{#!if p==52
10184}}}{{{#!if p==53
10195}}}{{{#!if p==54
10206}}}{{{#!if p==55
10217}}}{{{#!if p==56
10228}}}{{{#!if p==57
10239}}}{{{#!if i+=1
1024}}}}}}
r90
1025}}}
r94
1026}}}}}}}}}
r44
1027==# 2-1 #==
1028{{{#!wiki style="font-weight: 300; font-size: 20px"
r37
1029{{{#!if +a>=0
1030@a@}}}{{{#!if +a<0
r36
1031(@a@)}}} {{{#!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)-(+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)
r7

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

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

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

(r16으로 되돌림)
1047##1
r11
1048{{{#!if p=r[o]
r9
1049}}}{{{#!if p==45
1050-}}}{{{#!if p==46
r14
1051{{{#!if d=true
r20
1052}}}}}}{{{#!if p==48
r9
10530}}}{{{#!if p==49
10541}}}{{{#!if p==50
10552}}}{{{#!if p==51
10563}}}{{{#!if p==52
10574}}}{{{#!if p==53
10585}}}{{{#!if p==54
10596}}}{{{#!if p==55
10607}}}{{{#!if p==56
10618}}}{{{#!if p==57
r41
10629}}}{{{#!if o+=1
r19
1063}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1064##2
r11
1065{{{#!if p=r[o]
r35
1066}}}{{{#!if p==46
r14
1067{{{#!if d=true
r20
1068}}}}}}{{{#!if p==48
r9
10690}}}{{{#!if p==49
10701}}}{{{#!if p==50
10712}}}{{{#!if p==51
10723}}}{{{#!if p==52
10734}}}{{{#!if p==53
10745}}}{{{#!if p==54
10756}}}{{{#!if p==55
10767}}}{{{#!if p==56
10778}}}{{{#!if p==57
r41
10789}}}{{{#!if o+=1
r23
1079}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1080##3
r11
1081{{{#!if p=r[o]
r35
1082}}}{{{#!if p==46
r14
1083{{{#!if d=true
r20
1084}}}}}}{{{#!if p==48
r9
10850}}}{{{#!if p==49
10861}}}{{{#!if p==50
10872}}}{{{#!if p==51
10883}}}{{{#!if p==52
10894}}}{{{#!if p==53
10905}}}{{{#!if p==54
10916}}}{{{#!if p==55
10927}}}{{{#!if p==56
10938}}}{{{#!if p==57
r41
10949}}}{{{#!if o+=1
r23
1095}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1096##4
r11
1097{{{#!if p=r[o]
r35
1098}}}{{{#!if p==46
r14
1099{{{#!if d=true
r20
1100}}}}}}{{{#!if p==48
r9
11010}}}{{{#!if p==49
11021}}}{{{#!if p==50
11032}}}{{{#!if p==51
11043}}}{{{#!if p==52
11054}}}{{{#!if p==53
11065}}}{{{#!if p==54
11076}}}{{{#!if p==55
11087}}}{{{#!if p==56
11098}}}{{{#!if p==57
r41
11109}}}{{{#!if o+=1
r23
1111}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1112##5
r11
1113{{{#!if p=r[o]
r35
1114}}}{{{#!if p==46
r14
1115{{{#!if d=true
r20
1116}}}}}}{{{#!if p==48
r9
11170}}}{{{#!if p==49
11181}}}{{{#!if p==50
11192}}}{{{#!if p==51
11203}}}{{{#!if p==52
11214}}}{{{#!if p==53
11225}}}{{{#!if p==54
11236}}}{{{#!if p==55
11247}}}{{{#!if p==56
11258}}}{{{#!if p==57
r41
11269}}}{{{#!if o+=1
r23
1127}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1128##6
r11
1129{{{#!if p=r[o]
r35
1130}}}{{{#!if p==46
r14
1131{{{#!if d=true
r20
1132}}}}}}{{{#!if p==48
r9
11330}}}{{{#!if p==49
11341}}}{{{#!if p==50
11352}}}{{{#!if p==51
11363}}}{{{#!if p==52
11374}}}{{{#!if p==53
11385}}}{{{#!if p==54
11396}}}{{{#!if p==55
11407}}}{{{#!if p==56
11418}}}{{{#!if p==57
r41
11429}}}{{{#!if o+=1
r23
1143}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1144##7
r11
1145{{{#!if p=r[o]
r35
1146}}}{{{#!if p==46
r14
1147{{{#!if d=true
r20
1148}}}}}}{{{#!if p==48
r9
11490}}}{{{#!if p==49
11501}}}{{{#!if p==50
11512}}}{{{#!if p==51
11523}}}{{{#!if p==52
11534}}}{{{#!if p==53
11545}}}{{{#!if p==54
11556}}}{{{#!if p==55
11567}}}{{{#!if p==56
11578}}}{{{#!if p==57
r41
11589}}}{{{#!if o+=1
r23
1159}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1160##8
r11
1161{{{#!if p=r[o]
r35
1162}}}{{{#!if p==46
r14
1163{{{#!if d=true
r20
1164}}}}}}{{{#!if p==48
r9
11650}}}{{{#!if p==49
11661}}}{{{#!if p==50
11672}}}{{{#!if p==51
11683}}}{{{#!if p==52
11694}}}{{{#!if p==53
11705}}}{{{#!if p==54
11716}}}{{{#!if p==55
11727}}}{{{#!if p==56
11738}}}{{{#!if p==57
r41
11749}}}{{{#!if o+=1
r23
1175}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1176##9
r11
1177{{{#!if p=r[o]
r35
1178}}}{{{#!if p==46
r14
1179{{{#!if d=true
r20
1180}}}}}}{{{#!if p==48
r9
11810}}}{{{#!if p==49
11821}}}{{{#!if p==50
11832}}}{{{#!if p==51
11843}}}{{{#!if p==52
11854}}}{{{#!if p==53
11865}}}{{{#!if p==54
11876}}}{{{#!if p==55
11887}}}{{{#!if p==56
11898}}}{{{#!if p==57
r41
11909}}}{{{#!if o+=1
r23
1191}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1192##10
r11
1193{{{#!if p=r[o]
r35
1194}}}{{{#!if p==46
r14
1195{{{#!if d=true
r20
1196}}}}}}{{{#!if p==48
r9
11970}}}{{{#!if p==49
11981}}}{{{#!if p==50
11992}}}{{{#!if p==51
12003}}}{{{#!if p==52
12014}}}{{{#!if p==53
12025}}}{{{#!if p==54
12036}}}{{{#!if p==55
12047}}}{{{#!if p==56
12058}}}{{{#!if p==57
r41
12069}}}{{{#!if o+=1
r23
1207}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1208##11
r11
1209{{{#!if p=r[o]
r35
1210}}}{{{#!if p==46
r14
1211{{{#!if d=true
r20
1212}}}}}}{{{#!if p==48
r9
12130}}}{{{#!if p==49
12141}}}{{{#!if p==50
12152}}}{{{#!if p==51
12163}}}{{{#!if p==52
12174}}}{{{#!if p==53
12185}}}{{{#!if p==54
12196}}}{{{#!if p==55
12207}}}{{{#!if p==56
12218}}}{{{#!if p==57
r41
12229}}}{{{#!if o+=1
r23
1223}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1224##12
r11
1225{{{#!if p=r[o]
r35
1226}}}{{{#!if p==46
r14
1227{{{#!if d=true
r20
1228}}}}}}{{{#!if p==48
r9
12290}}}{{{#!if p==49
12301}}}{{{#!if p==50
12312}}}{{{#!if p==51
12323}}}{{{#!if p==52
12334}}}{{{#!if p==53
12345}}}{{{#!if p==54
12356}}}{{{#!if p==55
12367}}}{{{#!if p==56
12378}}}{{{#!if p==57
r41
12389}}}{{{#!if o+=1
r23
1239}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1240##13
r11
1241{{{#!if p=r[o]
r35
1242}}}{{{#!if p==46
r14
1243{{{#!if d=true
r20
1244}}}}}}{{{#!if p==48
r9
12450}}}{{{#!if p==49
12461}}}{{{#!if p==50
12472}}}{{{#!if p==51
12483}}}{{{#!if p==52
12494}}}{{{#!if p==53
12505}}}{{{#!if p==54
12516}}}{{{#!if p==55
12527}}}{{{#!if p==56
12538}}}{{{#!if p==57
r41
12549}}}{{{#!if o+=1
r23
1255}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1256##14
r11
1257{{{#!if p=r[o]
r35
1258}}}{{{#!if p==46
r14
1259{{{#!if d=true
r20
1260}}}}}}{{{#!if p==48
r9
12610}}}{{{#!if p==49
12621}}}{{{#!if p==50
12632}}}{{{#!if p==51
12643}}}{{{#!if p==52
12654}}}{{{#!if p==53
12665}}}{{{#!if p==54
12676}}}{{{#!if p==55
12687}}}{{{#!if p==56
12698}}}{{{#!if p==57
r41
12709}}}{{{#!if o+=1
r23
1271}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1272##15
r11
1273{{{#!if p=r[o]
r35
1274}}}{{{#!if p==46
r14
1275{{{#!if d=true
r20
1276}}}}}}{{{#!if p==48
r9
12770}}}{{{#!if p==49
12781}}}{{{#!if p==50
12792}}}{{{#!if p==51
12803}}}{{{#!if p==52
12814}}}{{{#!if p==53
12825}}}{{{#!if p==54
12836}}}{{{#!if p==55
12847}}}{{{#!if p==56
12858}}}{{{#!if p==57
r41
12869}}}{{{#!if o+=1
r23
1287}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1288##16
r11
1289{{{#!if p=r[o]
r35
1290}}}{{{#!if p==46
r14
1291{{{#!if d=true
r20
1292}}}}}}{{{#!if p==48
r9
12930}}}{{{#!if p==49
12941}}}{{{#!if p==50
12952}}}{{{#!if p==51
12963}}}{{{#!if p==52
12974}}}{{{#!if p==53
12985}}}{{{#!if p==54
12996}}}{{{#!if p==55
13007}}}{{{#!if p==56
13018}}}{{{#!if p==57
r41
13029}}}{{{#!if o+=1
r23
1303}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1304##17
r11
1305{{{#!if p=r[o]
r35
1306}}}{{{#!if p==46
r14
1307{{{#!if d=true
r20
1308}}}}}}{{{#!if p==48
r9
13090}}}{{{#!if p==49
13101}}}{{{#!if p==50
13112}}}{{{#!if p==51
13123}}}{{{#!if p==52
13134}}}{{{#!if p==53
13145}}}{{{#!if p==54
13156}}}{{{#!if p==55
13167}}}{{{#!if p==56
13178}}}{{{#!if p==57
r41
13189}}}{{{#!if o+=1
r23
1319}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1320##18
r11
1321{{{#!if p=r[o]
r35
1322}}}{{{#!if p==46
r14
1323{{{#!if d=true
r20
1324}}}}}}{{{#!if p==48
r9
13250}}}{{{#!if p==49
13261}}}{{{#!if p==50
13272}}}{{{#!if p==51
13283}}}{{{#!if p==52
13294}}}{{{#!if p==53
13305}}}{{{#!if p==54
13316}}}{{{#!if p==55
13327}}}{{{#!if p==56
13338}}}{{{#!if p==57
r41
13349}}}{{{#!if o+=1
r23
1335}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1336##19
r11
1337{{{#!if p=r[o]
r35
1338}}}{{{#!if p==46
r14
1339{{{#!if d=true
r20
1340}}}}}}{{{#!if p==48
r9
13410}}}{{{#!if p==49
13421}}}{{{#!if p==50
13432}}}{{{#!if p==51
13443}}}{{{#!if p==52
13454}}}{{{#!if p==53
13465}}}{{{#!if p==54
13476}}}{{{#!if p==55
13487}}}{{{#!if p==56
13498}}}{{{#!if p==57
r41
13509}}}{{{#!if o+=1
r23
1351}}}}}}{{{#!if (o<l)&&(d==false)
r18

(r16으로 되돌림)
1352##20
r11
1353{{{#!if p=r[o]
r35
1354}}}{{{#!if p==46
r14
1355{{{#!if d=true
r20
1356}}}}}}{{{#!if p==48
r9
13570}}}{{{#!if p==49
13581}}}{{{#!if p==50
13592}}}{{{#!if p==51
13603}}}{{{#!if p==52
13614}}}{{{#!if p==53
13625}}}{{{#!if p==54
13636}}}{{{#!if p==55
13647}}}{{{#!if p==56
13658}}}{{{#!if p==57
r41
13669}}}{{{#!if o+=1
r20
1367}}}}}}{{{#!if o=0, l=u.length
1368}}}{{{#!if u[0]==45
1369##음수로 마이너스가 표시되면 넘기기
r41
1370{{{#!if o+=1
r20
1371}}}}}}{{{#!if l-o>2
1372##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r41
1373{{{#!if o+=1
r42
1374##일의 자리 넘기기
r32
1375}}}{{{#!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
1376##".000000"은 표기하지 않음. 소수점 표기
1377.{{{#!if o+=1
1378}}}}}}}}}{{{#!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
1379##1
r22
1380{{{#!if p=u[o]
r21
1381}}}{{{#!if p==48
r25
13820}}}{{{#!if p==49
r21
13831}}}{{{#!if p==50
13842}}}{{{#!if p==51
13853}}}{{{#!if p==52
13864}}}{{{#!if p==53
13875}}}{{{#!if p==54
13886}}}{{{#!if p==55
13897}}}{{{#!if p==56
13908}}}{{{#!if p==57
r41
13919}}}{{{#!if o+=1
r23
1392}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r21
1393##2
r22
1394{{{#!if p=u[o]
r21
1395}}}{{{#!if p==48
13960}}}{{{#!if p==49
13971}}}{{{#!if p==50
13982}}}{{{#!if p==51
13993}}}{{{#!if p==52
14004}}}{{{#!if p==53
14015}}}{{{#!if p==54
14026}}}{{{#!if p==55
14037}}}{{{#!if p==56
14048}}}{{{#!if p==57
r41
14059}}}{{{#!if o+=1
r23
1406}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r21
1407##3
r22
1408{{{#!if p=u[o]
r21
1409}}}{{{#!if p==48
14100}}}{{{#!if p==49
14111}}}{{{#!if p==50
14122}}}{{{#!if p==51
14133}}}{{{#!if p==52
14144}}}{{{#!if p==53
14155}}}{{{#!if p==54
14166}}}{{{#!if p==55
14177}}}{{{#!if p==56
14188}}}{{{#!if p==57
r41
14199}}}{{{#!if o+=1
r23
1420}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r21
1421##4
r22
1422{{{#!if p=u[o]
r21
1423}}}{{{#!if p==48
14240}}}{{{#!if p==49
14251}}}{{{#!if p==50
14262}}}{{{#!if p==51
14273}}}{{{#!if p==52
14284}}}{{{#!if p==53
14295}}}{{{#!if p==54
14306}}}{{{#!if p==55
14317}}}{{{#!if p==56
14328}}}{{{#!if p==57
r41
14339}}}{{{#!if o+=1
r23
1434}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r21
1435##5
r22
1436{{{#!if p=u[o]
r21
1437}}}{{{#!if p==48
14380}}}{{{#!if p==49
14391}}}{{{#!if p==50
14402}}}{{{#!if p==51
14413}}}{{{#!if p==52
14424}}}{{{#!if p==53
14435}}}{{{#!if p==54
14446}}}{{{#!if p==55
14457}}}{{{#!if p==56
14468}}}{{{#!if p==57
r41
14479}}}{{{#!if o+=1
r23
1448}}}}}}{{{#!if (o<l)&&(d==true)
r21
1449##6
r22
1450{{{#!if p=u[o]
r21
1451}}}{{{#!if p==48
r26
1452##"0" 미표기
1453}}}{{{#!if p==49
r21
14541}}}{{{#!if p==50
14552}}}{{{#!if p==51
14563}}}{{{#!if p==52
14574}}}{{{#!if p==53
14585}}}{{{#!if p==54
14596}}}{{{#!if p==55
14607}}}{{{#!if p==56
14618}}}{{{#!if p==57
r41
14629}}}{{{#!if o+=1
r34
1463}}}}}}}}}}}}