본문으로 건너뛰기

계산기2(r61판 Blame)

r61
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은 다른 수이므로 자리수가 다름을 표시할 용도
13'''ru''' : result upper value (integer); '''rb''' : result below value (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 번 : 입력한 변수는 숫자로 읽을 수 없습니다. 반점(,)을 입력했다면 반점을 지우고 다시 입력하세요.
r57
54
r60
55error code 03 번 : 오버플로
56error code 04 번 : 언더플로
57error code 05 번 : 0으로 나눌 수 없습니다.
r59
58
r50
59##여기까지 주석
r49
60}}}{{{#!if as[0]!=45
r48
61@a@}}}{{{#!if as[0]==45
62(@a@)}}}{{{#!if f=='+'
63}}}{{{#!if bs[0]!=45
64@b@}}}{{{#!if bs[0]==45
r52
65(@b@)}}}}}}
r39
66==# 2-1 #==
67{{{#!wiki style="font-weight: 300; font-size: 20px"
r33
68{{{#!if +a>=0
69@a@}}}{{{#!if +a<0
r32
70(@a@)}}} {{{#!if f == '+'
r13
71{{{#!if r =(+a)+(+b)+0.0, u=(+a)+(+b)
r1
72}}}+}}}{{{#!if f == '-'
r13
73{{{#!if r =(+a)-(+b)+0.0, u=(+a)-(+b)
r1
74}}}-}}}{{{#!if f == '*'
r13
75{{{#!if r =((+a)+0.0)*((+b)+0.0), u=(+a)*(+b)
r1
76}}}×}}}{{{#!if f == '/'
r13
77{{{#!if r =((+a)+0.0)/((+b)+0.0), u=(+a)/(+b)
r33
78}}}÷}}} {{{#!if +b>=0
79@b@}}}{{{#!if +b<0
r32
80(@b@)}}} = {{{#!if u=r-u, d=false
r14
81##u : 나누어떨어지는 부분 절삭하기. d : dot 매김 여부
r16
82}}}{{{#!if r=r.toString(), u=u.toString()
r8
83}}}{{{#!if o=0, l=r.length
r9
84}}}{{{#!if (r!=null)&&(r!="")
85{{{#!if +o<l
r14
86##1
r9
87{{{#!if p=r[o]
r7
88}}}{{{#!if p==45
89-}}}{{{#!if p==46
r12
90{{{#!if d=true
r16
91}}}}}}{{{#!if p==48
r7
920}}}{{{#!if p==49
931}}}{{{#!if p==50
942}}}{{{#!if p==51
953}}}{{{#!if p==52
964}}}{{{#!if p==53
975}}}{{{#!if p==54
986}}}{{{#!if p==55
997}}}{{{#!if p==56
1008}}}{{{#!if p==57
r36
1019}}}{{{#!if o+=1
r15
102}}}}}}{{{#!if (o<l)&&(d==false)
r14
103##2
r9
104{{{#!if p=r[o]
r31
105}}}{{{#!if p==46
r12
106{{{#!if d=true
r16
107}}}}}}{{{#!if p==48
r7
1080}}}{{{#!if p==49
1091}}}{{{#!if p==50
1102}}}{{{#!if p==51
1113}}}{{{#!if p==52
1124}}}{{{#!if p==53
1135}}}{{{#!if p==54
1146}}}{{{#!if p==55
1157}}}{{{#!if p==56
1168}}}{{{#!if p==57
r36
1179}}}{{{#!if o+=1
r19
118}}}}}}{{{#!if (o<l)&&(d==false)
r14
119##3
r9
120{{{#!if p=r[o]
r31
121}}}{{{#!if p==46
r12
122{{{#!if d=true
r16
123}}}}}}{{{#!if p==48
r7
1240}}}{{{#!if p==49
1251}}}{{{#!if p==50
1262}}}{{{#!if p==51
1273}}}{{{#!if p==52
1284}}}{{{#!if p==53
1295}}}{{{#!if p==54
1306}}}{{{#!if p==55
1317}}}{{{#!if p==56
1328}}}{{{#!if p==57
r36
1339}}}{{{#!if o+=1
r19
134}}}}}}{{{#!if (o<l)&&(d==false)
r14
135##4
r9
136{{{#!if p=r[o]
r31
137}}}{{{#!if p==46
r12
138{{{#!if d=true
r16
139}}}}}}{{{#!if p==48
r7
1400}}}{{{#!if p==49
1411}}}{{{#!if p==50
1422}}}{{{#!if p==51
1433}}}{{{#!if p==52
1444}}}{{{#!if p==53
1455}}}{{{#!if p==54
1466}}}{{{#!if p==55
1477}}}{{{#!if p==56
1488}}}{{{#!if p==57
r36
1499}}}{{{#!if o+=1
r19
150}}}}}}{{{#!if (o<l)&&(d==false)
r14
151##5
r9
152{{{#!if p=r[o]
r31
153}}}{{{#!if p==46
r12
154{{{#!if d=true
r16
155}}}}}}{{{#!if p==48
r7
1560}}}{{{#!if p==49
1571}}}{{{#!if p==50
1582}}}{{{#!if p==51
1593}}}{{{#!if p==52
1604}}}{{{#!if p==53
1615}}}{{{#!if p==54
1626}}}{{{#!if p==55
1637}}}{{{#!if p==56
1648}}}{{{#!if p==57
r36
1659}}}{{{#!if o+=1
r19
166}}}}}}{{{#!if (o<l)&&(d==false)
r14
167##6
r9
168{{{#!if p=r[o]
r31
169}}}{{{#!if p==46
r12
170{{{#!if d=true
r16
171}}}}}}{{{#!if p==48
r7
1720}}}{{{#!if p==49
1731}}}{{{#!if p==50
1742}}}{{{#!if p==51
1753}}}{{{#!if p==52
1764}}}{{{#!if p==53
1775}}}{{{#!if p==54
1786}}}{{{#!if p==55
1797}}}{{{#!if p==56
1808}}}{{{#!if p==57
r36
1819}}}{{{#!if o+=1
r19
182}}}}}}{{{#!if (o<l)&&(d==false)
r14
183##7
r9
184{{{#!if p=r[o]
r31
185}}}{{{#!if p==46
r12
186{{{#!if d=true
r16
187}}}}}}{{{#!if p==48
r7
1880}}}{{{#!if p==49
1891}}}{{{#!if p==50
1902}}}{{{#!if p==51
1913}}}{{{#!if p==52
1924}}}{{{#!if p==53
1935}}}{{{#!if p==54
1946}}}{{{#!if p==55
1957}}}{{{#!if p==56
1968}}}{{{#!if p==57
r36
1979}}}{{{#!if o+=1
r19
198}}}}}}{{{#!if (o<l)&&(d==false)
r14
199##8
r9
200{{{#!if p=r[o]
r31
201}}}{{{#!if p==46
r12
202{{{#!if d=true
r16
203}}}}}}{{{#!if p==48
r7
2040}}}{{{#!if p==49
2051}}}{{{#!if p==50
2062}}}{{{#!if p==51
2073}}}{{{#!if p==52
2084}}}{{{#!if p==53
2095}}}{{{#!if p==54
2106}}}{{{#!if p==55
2117}}}{{{#!if p==56
2128}}}{{{#!if p==57
r36
2139}}}{{{#!if o+=1
r19
214}}}}}}{{{#!if (o<l)&&(d==false)
r14
215##9
r9
216{{{#!if p=r[o]
r31
217}}}{{{#!if p==46
r12
218{{{#!if d=true
r16
219}}}}}}{{{#!if p==48
r7
2200}}}{{{#!if p==49
2211}}}{{{#!if p==50
2222}}}{{{#!if p==51
2233}}}{{{#!if p==52
2244}}}{{{#!if p==53
2255}}}{{{#!if p==54
2266}}}{{{#!if p==55
2277}}}{{{#!if p==56
2288}}}{{{#!if p==57
r36
2299}}}{{{#!if o+=1
r19
230}}}}}}{{{#!if (o<l)&&(d==false)
r14
231##10
r9
232{{{#!if p=r[o]
r31
233}}}{{{#!if p==46
r12
234{{{#!if d=true
r16
235}}}}}}{{{#!if p==48
r7
2360}}}{{{#!if p==49
2371}}}{{{#!if p==50
2382}}}{{{#!if p==51
2393}}}{{{#!if p==52
2404}}}{{{#!if p==53
2415}}}{{{#!if p==54
2426}}}{{{#!if p==55
2437}}}{{{#!if p==56
2448}}}{{{#!if p==57
r36
2459}}}{{{#!if o+=1
r19
246}}}}}}{{{#!if (o<l)&&(d==false)
r14
247##11
r9
248{{{#!if p=r[o]
r31
249}}}{{{#!if p==46
r12
250{{{#!if d=true
r16
251}}}}}}{{{#!if p==48
r7
2520}}}{{{#!if p==49
2531}}}{{{#!if p==50
2542}}}{{{#!if p==51
2553}}}{{{#!if p==52
2564}}}{{{#!if p==53
2575}}}{{{#!if p==54
2586}}}{{{#!if p==55
2597}}}{{{#!if p==56
2608}}}{{{#!if p==57
r36
2619}}}{{{#!if o+=1
r19
262}}}}}}{{{#!if (o<l)&&(d==false)
r14
263##12
r9
264{{{#!if p=r[o]
r31
265}}}{{{#!if p==46
r12
266{{{#!if d=true
r16
267}}}}}}{{{#!if p==48
r7
2680}}}{{{#!if p==49
2691}}}{{{#!if p==50
2702}}}{{{#!if p==51
2713}}}{{{#!if p==52
2724}}}{{{#!if p==53
2735}}}{{{#!if p==54
2746}}}{{{#!if p==55
2757}}}{{{#!if p==56
2768}}}{{{#!if p==57
r36
2779}}}{{{#!if o+=1
r19
278}}}}}}{{{#!if (o<l)&&(d==false)
r14
279##13
r9
280{{{#!if p=r[o]
r31
281}}}{{{#!if p==46
r12
282{{{#!if d=true
r16
283}}}}}}{{{#!if p==48
r7
2840}}}{{{#!if p==49
2851}}}{{{#!if p==50
2862}}}{{{#!if p==51
2873}}}{{{#!if p==52
2884}}}{{{#!if p==53
2895}}}{{{#!if p==54
2906}}}{{{#!if p==55
2917}}}{{{#!if p==56
2928}}}{{{#!if p==57
r36
2939}}}{{{#!if o+=1
r19
294}}}}}}{{{#!if (o<l)&&(d==false)
r14
295##14
r9
296{{{#!if p=r[o]
r31
297}}}{{{#!if p==46
r12
298{{{#!if d=true
r16
299}}}}}}{{{#!if p==48
r7
3000}}}{{{#!if p==49
3011}}}{{{#!if p==50
3022}}}{{{#!if p==51
3033}}}{{{#!if p==52
3044}}}{{{#!if p==53
3055}}}{{{#!if p==54
3066}}}{{{#!if p==55
3077}}}{{{#!if p==56
3088}}}{{{#!if p==57
r36
3099}}}{{{#!if o+=1
r19
310}}}}}}{{{#!if (o<l)&&(d==false)
r14
311##15
r9
312{{{#!if p=r[o]
r31
313}}}{{{#!if p==46
r12
314{{{#!if d=true
r16
315}}}}}}{{{#!if p==48
r7
3160}}}{{{#!if p==49
3171}}}{{{#!if p==50
3182}}}{{{#!if p==51
3193}}}{{{#!if p==52
3204}}}{{{#!if p==53
3215}}}{{{#!if p==54
3226}}}{{{#!if p==55
3237}}}{{{#!if p==56
3248}}}{{{#!if p==57
r36
3259}}}{{{#!if o+=1
r19
326}}}}}}{{{#!if (o<l)&&(d==false)
r14
327##16
r9
328{{{#!if p=r[o]
r31
329}}}{{{#!if p==46
r12
330{{{#!if d=true
r16
331}}}}}}{{{#!if p==48
r7
3320}}}{{{#!if p==49
3331}}}{{{#!if p==50
3342}}}{{{#!if p==51
3353}}}{{{#!if p==52
3364}}}{{{#!if p==53
3375}}}{{{#!if p==54
3386}}}{{{#!if p==55
3397}}}{{{#!if p==56
3408}}}{{{#!if p==57
r36
3419}}}{{{#!if o+=1
r19
342}}}}}}{{{#!if (o<l)&&(d==false)
r14
343##17
r9
344{{{#!if p=r[o]
r31
345}}}{{{#!if p==46
r12
346{{{#!if d=true
r16
347}}}}}}{{{#!if p==48
r7
3480}}}{{{#!if p==49
3491}}}{{{#!if p==50
3502}}}{{{#!if p==51
3513}}}{{{#!if p==52
3524}}}{{{#!if p==53
3535}}}{{{#!if p==54
3546}}}{{{#!if p==55
3557}}}{{{#!if p==56
3568}}}{{{#!if p==57
r36
3579}}}{{{#!if o+=1
r19
358}}}}}}{{{#!if (o<l)&&(d==false)
r14
359##18
r9
360{{{#!if p=r[o]
r31
361}}}{{{#!if p==46
r12
362{{{#!if d=true
r16
363}}}}}}{{{#!if p==48
r7
3640}}}{{{#!if p==49
3651}}}{{{#!if p==50
3662}}}{{{#!if p==51
3673}}}{{{#!if p==52
3684}}}{{{#!if p==53
3695}}}{{{#!if p==54
3706}}}{{{#!if p==55
3717}}}{{{#!if p==56
3728}}}{{{#!if p==57
r36
3739}}}{{{#!if o+=1
r19
374}}}}}}{{{#!if (o<l)&&(d==false)
r14
375##19
r9
376{{{#!if p=r[o]
r31
377}}}{{{#!if p==46
r12
378{{{#!if d=true
r16
379}}}}}}{{{#!if p==48
r7
3800}}}{{{#!if p==49
3811}}}{{{#!if p==50
3822}}}{{{#!if p==51
3833}}}{{{#!if p==52
3844}}}{{{#!if p==53
3855}}}{{{#!if p==54
3866}}}{{{#!if p==55
3877}}}{{{#!if p==56
3888}}}{{{#!if p==57
r36
3899}}}{{{#!if o+=1
r19
390}}}}}}{{{#!if (o<l)&&(d==false)
r14
391##20
r9
392{{{#!if p=r[o]
r31
393}}}{{{#!if p==46
r12
394{{{#!if d=true
r16
395}}}}}}{{{#!if p==48
r7
3960}}}{{{#!if p==49
3971}}}{{{#!if p==50
3982}}}{{{#!if p==51
3993}}}{{{#!if p==52
4004}}}{{{#!if p==53
4015}}}{{{#!if p==54
4026}}}{{{#!if p==55
4037}}}{{{#!if p==56
4048}}}{{{#!if p==57
r36
4059}}}{{{#!if o+=1
r16
406}}}}}}{{{#!if o=0, l=u.length
407}}}{{{#!if u[0]==45
408##음수로 마이너스가 표시되면 넘기기
r36
409{{{#!if o+=1
r16
410}}}}}}{{{#!if l-o>2
411##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r36
412{{{#!if o+=1
r37
413##일의 자리 넘기기
r28
414}}}{{{#!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
415##".000000"은 표기하지 않음. 소수점 표기
416.{{{#!if o+=1
417}}}}}}}}}{{{#!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
418##1
r18
419{{{#!if p=u[o]
r17
420}}}{{{#!if p==48
r21
4210}}}{{{#!if p==49
r17
4221}}}{{{#!if p==50
4232}}}{{{#!if p==51
4243}}}{{{#!if p==52
4254}}}{{{#!if p==53
4265}}}{{{#!if p==54
4276}}}{{{#!if p==55
4287}}}{{{#!if p==56
4298}}}{{{#!if p==57
r36
4309}}}{{{#!if o+=1
r19
431}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r17
432##2
r18
433{{{#!if p=u[o]
r17
434}}}{{{#!if p==48
4350}}}{{{#!if p==49
4361}}}{{{#!if p==50
4372}}}{{{#!if p==51
4383}}}{{{#!if p==52
4394}}}{{{#!if p==53
4405}}}{{{#!if p==54
4416}}}{{{#!if p==55
4427}}}{{{#!if p==56
4438}}}{{{#!if p==57
r36
4449}}}{{{#!if o+=1
r19
445}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r17
446##3
r18
447{{{#!if p=u[o]
r17
448}}}{{{#!if p==48
4490}}}{{{#!if p==49
4501}}}{{{#!if p==50
4512}}}{{{#!if p==51
4523}}}{{{#!if p==52
4534}}}{{{#!if p==53
4545}}}{{{#!if p==54
4556}}}{{{#!if p==55
4567}}}{{{#!if p==56
4578}}}{{{#!if p==57
r36
4589}}}{{{#!if o+=1
r19
459}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r17
460##4
r18
461{{{#!if p=u[o]
r17
462}}}{{{#!if p==48
4630}}}{{{#!if p==49
4641}}}{{{#!if p==50
4652}}}{{{#!if p==51
4663}}}{{{#!if p==52
4674}}}{{{#!if p==53
4685}}}{{{#!if p==54
4696}}}{{{#!if p==55
4707}}}{{{#!if p==56
4718}}}{{{#!if p==57
r36
4729}}}{{{#!if o+=1
r19
473}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r17
474##5
r18
475{{{#!if p=u[o]
r17
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
r36
4869}}}{{{#!if o+=1
r19
487}}}}}}{{{#!if (o<l)&&(d==true)
r17
488##6
r18
489{{{#!if p=u[o]
r17
490}}}{{{#!if p==48
r22
491##"0" 미표기
492}}}{{{#!if p==49
r17
4931}}}{{{#!if p==50
4942}}}{{{#!if p==51
4953}}}{{{#!if p==52
4964}}}{{{#!if p==53
4975}}}{{{#!if p==54
4986}}}{{{#!if p==55
4997}}}{{{#!if p==56
5008}}}{{{#!if p==57
r36
5019}}}{{{#!if o+=1
r30
502}}}}}}}}}}}}