본문으로 건너뛰기

계산기2(r58판 Blame)

r58
r38
1[[분류:냥]][Include(틀:상세 내용, 설명대상=원본, 문서명=틀\:계산기)]
r39
2== 2-2 ==
r1
3{{{#!wiki style="font-weight: 300; font-size: 20px"
r49
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)
r48
14{{{#!if this.as=a.upString(), this.bs=b.upString(), this.ru=0+0, this.rb=0+0
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
r53
19}}}{{{#!if (au=="")||(au=="-")
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
r53
26}}}{{{#!if (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
39warning code of a 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다.
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
r57
48error code of b 01번 : 소수점 아래 자릿수를 너무 많이 입력했습니다.
r58
49{{{#!if wb=01, bb=bb.substr(0,18)
r57
50}}}}}}
51
52
r50
53##여기까지 주석
r49
54}}}{{{#!if as[0]!=45
r48
55@a@}}}{{{#!if as[0]==45
56(@a@)}}}{{{#!if f=='+'
57}}}{{{#!if bs[0]!=45
58@b@}}}{{{#!if bs[0]==45
r52
59(@b@)}}}}}}
r39
60==# 2-1 #==
61{{{#!wiki style="font-weight: 300; font-size: 20px"
r33
62{{{#!if +a>=0
63@a@}}}{{{#!if +a<0
r32
64(@a@)}}} {{{#!if f == '+'
r13
65{{{#!if r =(+a)+(+b)+0.0, u=(+a)+(+b)
r1
66}}}+}}}{{{#!if f == '-'
r13
67{{{#!if r =(+a)-(+b)+0.0, u=(+a)-(+b)
r1
68}}}-}}}{{{#!if f == '*'
r13
69{{{#!if r =((+a)+0.0)*((+b)+0.0), u=(+a)*(+b)
r1
70}}}×}}}{{{#!if f == '/'
r13
71{{{#!if r =((+a)+0.0)/((+b)+0.0), u=(+a)/(+b)
r33
72}}}÷}}} {{{#!if +b>=0
73@b@}}}{{{#!if +b<0
r32
74(@b@)}}} = {{{#!if u=r-u, d=false
r14
75##u : 나누어떨어지는 부분 절삭하기. d : dot 매김 여부
r16
76}}}{{{#!if r=r.toString(), u=u.toString()
r8
77}}}{{{#!if o=0, l=r.length
r9
78}}}{{{#!if (r!=null)&&(r!="")
79{{{#!if +o<l
r14
80##1
r9
81{{{#!if p=r[o]
r7
82}}}{{{#!if p==45
83-}}}{{{#!if p==46
r12
84{{{#!if d=true
r16
85}}}}}}{{{#!if p==48
r7
860}}}{{{#!if p==49
871}}}{{{#!if p==50
882}}}{{{#!if p==51
893}}}{{{#!if p==52
904}}}{{{#!if p==53
915}}}{{{#!if p==54
926}}}{{{#!if p==55
937}}}{{{#!if p==56
948}}}{{{#!if p==57
r36
959}}}{{{#!if o+=1
r15
96}}}}}}{{{#!if (o<l)&&(d==false)
r14
97##2
r9
98{{{#!if p=r[o]
r31
99}}}{{{#!if p==46
r12
100{{{#!if d=true
r16
101}}}}}}{{{#!if p==48
r7
1020}}}{{{#!if p==49
1031}}}{{{#!if p==50
1042}}}{{{#!if p==51
1053}}}{{{#!if p==52
1064}}}{{{#!if p==53
1075}}}{{{#!if p==54
1086}}}{{{#!if p==55
1097}}}{{{#!if p==56
1108}}}{{{#!if p==57
r36
1119}}}{{{#!if o+=1
r19
112}}}}}}{{{#!if (o<l)&&(d==false)
r14
113##3
r9
114{{{#!if p=r[o]
r31
115}}}{{{#!if p==46
r12
116{{{#!if d=true
r16
117}}}}}}{{{#!if p==48
r7
1180}}}{{{#!if p==49
1191}}}{{{#!if p==50
1202}}}{{{#!if p==51
1213}}}{{{#!if p==52
1224}}}{{{#!if p==53
1235}}}{{{#!if p==54
1246}}}{{{#!if p==55
1257}}}{{{#!if p==56
1268}}}{{{#!if p==57
r36
1279}}}{{{#!if o+=1
r19
128}}}}}}{{{#!if (o<l)&&(d==false)
r14
129##4
r9
130{{{#!if p=r[o]
r31
131}}}{{{#!if p==46
r12
132{{{#!if d=true
r16
133}}}}}}{{{#!if p==48
r7
1340}}}{{{#!if p==49
1351}}}{{{#!if p==50
1362}}}{{{#!if p==51
1373}}}{{{#!if p==52
1384}}}{{{#!if p==53
1395}}}{{{#!if p==54
1406}}}{{{#!if p==55
1417}}}{{{#!if p==56
1428}}}{{{#!if p==57
r36
1439}}}{{{#!if o+=1
r19
144}}}}}}{{{#!if (o<l)&&(d==false)
r14
145##5
r9
146{{{#!if p=r[o]
r31
147}}}{{{#!if p==46
r12
148{{{#!if d=true
r16
149}}}}}}{{{#!if p==48
r7
1500}}}{{{#!if p==49
1511}}}{{{#!if p==50
1522}}}{{{#!if p==51
1533}}}{{{#!if p==52
1544}}}{{{#!if p==53
1555}}}{{{#!if p==54
1566}}}{{{#!if p==55
1577}}}{{{#!if p==56
1588}}}{{{#!if p==57
r36
1599}}}{{{#!if o+=1
r19
160}}}}}}{{{#!if (o<l)&&(d==false)
r14
161##6
r9
162{{{#!if p=r[o]
r31
163}}}{{{#!if p==46
r12
164{{{#!if d=true
r16
165}}}}}}{{{#!if p==48
r7
1660}}}{{{#!if p==49
1671}}}{{{#!if p==50
1682}}}{{{#!if p==51
1693}}}{{{#!if p==52
1704}}}{{{#!if p==53
1715}}}{{{#!if p==54
1726}}}{{{#!if p==55
1737}}}{{{#!if p==56
1748}}}{{{#!if p==57
r36
1759}}}{{{#!if o+=1
r19
176}}}}}}{{{#!if (o<l)&&(d==false)
r14
177##7
r9
178{{{#!if p=r[o]
r31
179}}}{{{#!if p==46
r12
180{{{#!if d=true
r16
181}}}}}}{{{#!if p==48
r7
1820}}}{{{#!if p==49
1831}}}{{{#!if p==50
1842}}}{{{#!if p==51
1853}}}{{{#!if p==52
1864}}}{{{#!if p==53
1875}}}{{{#!if p==54
1886}}}{{{#!if p==55
1897}}}{{{#!if p==56
1908}}}{{{#!if p==57
r36
1919}}}{{{#!if o+=1
r19
192}}}}}}{{{#!if (o<l)&&(d==false)
r14
193##8
r9
194{{{#!if p=r[o]
r31
195}}}{{{#!if p==46
r12
196{{{#!if d=true
r16
197}}}}}}{{{#!if p==48
r7
1980}}}{{{#!if p==49
1991}}}{{{#!if p==50
2002}}}{{{#!if p==51
2013}}}{{{#!if p==52
2024}}}{{{#!if p==53
2035}}}{{{#!if p==54
2046}}}{{{#!if p==55
2057}}}{{{#!if p==56
2068}}}{{{#!if p==57
r36
2079}}}{{{#!if o+=1
r19
208}}}}}}{{{#!if (o<l)&&(d==false)
r14
209##9
r9
210{{{#!if p=r[o]
r31
211}}}{{{#!if p==46
r12
212{{{#!if d=true
r16
213}}}}}}{{{#!if p==48
r7
2140}}}{{{#!if p==49
2151}}}{{{#!if p==50
2162}}}{{{#!if p==51
2173}}}{{{#!if p==52
2184}}}{{{#!if p==53
2195}}}{{{#!if p==54
2206}}}{{{#!if p==55
2217}}}{{{#!if p==56
2228}}}{{{#!if p==57
r36
2239}}}{{{#!if o+=1
r19
224}}}}}}{{{#!if (o<l)&&(d==false)
r14
225##10
r9
226{{{#!if p=r[o]
r31
227}}}{{{#!if p==46
r12
228{{{#!if d=true
r16
229}}}}}}{{{#!if p==48
r7
2300}}}{{{#!if p==49
2311}}}{{{#!if p==50
2322}}}{{{#!if p==51
2333}}}{{{#!if p==52
2344}}}{{{#!if p==53
2355}}}{{{#!if p==54
2366}}}{{{#!if p==55
2377}}}{{{#!if p==56
2388}}}{{{#!if p==57
r36
2399}}}{{{#!if o+=1
r19
240}}}}}}{{{#!if (o<l)&&(d==false)
r14
241##11
r9
242{{{#!if p=r[o]
r31
243}}}{{{#!if p==46
r12
244{{{#!if d=true
r16
245}}}}}}{{{#!if p==48
r7
2460}}}{{{#!if p==49
2471}}}{{{#!if p==50
2482}}}{{{#!if p==51
2493}}}{{{#!if p==52
2504}}}{{{#!if p==53
2515}}}{{{#!if p==54
2526}}}{{{#!if p==55
2537}}}{{{#!if p==56
2548}}}{{{#!if p==57
r36
2559}}}{{{#!if o+=1
r19
256}}}}}}{{{#!if (o<l)&&(d==false)
r14
257##12
r9
258{{{#!if p=r[o]
r31
259}}}{{{#!if p==46
r12
260{{{#!if d=true
r16
261}}}}}}{{{#!if p==48
r7
2620}}}{{{#!if p==49
2631}}}{{{#!if p==50
2642}}}{{{#!if p==51
2653}}}{{{#!if p==52
2664}}}{{{#!if p==53
2675}}}{{{#!if p==54
2686}}}{{{#!if p==55
2697}}}{{{#!if p==56
2708}}}{{{#!if p==57
r36
2719}}}{{{#!if o+=1
r19
272}}}}}}{{{#!if (o<l)&&(d==false)
r14
273##13
r9
274{{{#!if p=r[o]
r31
275}}}{{{#!if p==46
r12
276{{{#!if d=true
r16
277}}}}}}{{{#!if p==48
r7
2780}}}{{{#!if p==49
2791}}}{{{#!if p==50
2802}}}{{{#!if p==51
2813}}}{{{#!if p==52
2824}}}{{{#!if p==53
2835}}}{{{#!if p==54
2846}}}{{{#!if p==55
2857}}}{{{#!if p==56
2868}}}{{{#!if p==57
r36
2879}}}{{{#!if o+=1
r19
288}}}}}}{{{#!if (o<l)&&(d==false)
r14
289##14
r9
290{{{#!if p=r[o]
r31
291}}}{{{#!if p==46
r12
292{{{#!if d=true
r16
293}}}}}}{{{#!if p==48
r7
2940}}}{{{#!if p==49
2951}}}{{{#!if p==50
2962}}}{{{#!if p==51
2973}}}{{{#!if p==52
2984}}}{{{#!if p==53
2995}}}{{{#!if p==54
3006}}}{{{#!if p==55
3017}}}{{{#!if p==56
3028}}}{{{#!if p==57
r36
3039}}}{{{#!if o+=1
r19
304}}}}}}{{{#!if (o<l)&&(d==false)
r14
305##15
r9
306{{{#!if p=r[o]
r31
307}}}{{{#!if p==46
r12
308{{{#!if d=true
r16
309}}}}}}{{{#!if p==48
r7
3100}}}{{{#!if p==49
3111}}}{{{#!if p==50
3122}}}{{{#!if p==51
3133}}}{{{#!if p==52
3144}}}{{{#!if p==53
3155}}}{{{#!if p==54
3166}}}{{{#!if p==55
3177}}}{{{#!if p==56
3188}}}{{{#!if p==57
r36
3199}}}{{{#!if o+=1
r19
320}}}}}}{{{#!if (o<l)&&(d==false)
r14
321##16
r9
322{{{#!if p=r[o]
r31
323}}}{{{#!if p==46
r12
324{{{#!if d=true
r16
325}}}}}}{{{#!if p==48
r7
3260}}}{{{#!if p==49
3271}}}{{{#!if p==50
3282}}}{{{#!if p==51
3293}}}{{{#!if p==52
3304}}}{{{#!if p==53
3315}}}{{{#!if p==54
3326}}}{{{#!if p==55
3337}}}{{{#!if p==56
3348}}}{{{#!if p==57
r36
3359}}}{{{#!if o+=1
r19
336}}}}}}{{{#!if (o<l)&&(d==false)
r14
337##17
r9
338{{{#!if p=r[o]
r31
339}}}{{{#!if p==46
r12
340{{{#!if d=true
r16
341}}}}}}{{{#!if p==48
r7
3420}}}{{{#!if p==49
3431}}}{{{#!if p==50
3442}}}{{{#!if p==51
3453}}}{{{#!if p==52
3464}}}{{{#!if p==53
3475}}}{{{#!if p==54
3486}}}{{{#!if p==55
3497}}}{{{#!if p==56
3508}}}{{{#!if p==57
r36
3519}}}{{{#!if o+=1
r19
352}}}}}}{{{#!if (o<l)&&(d==false)
r14
353##18
r9
354{{{#!if p=r[o]
r31
355}}}{{{#!if p==46
r12
356{{{#!if d=true
r16
357}}}}}}{{{#!if p==48
r7
3580}}}{{{#!if p==49
3591}}}{{{#!if p==50
3602}}}{{{#!if p==51
3613}}}{{{#!if p==52
3624}}}{{{#!if p==53
3635}}}{{{#!if p==54
3646}}}{{{#!if p==55
3657}}}{{{#!if p==56
3668}}}{{{#!if p==57
r36
3679}}}{{{#!if o+=1
r19
368}}}}}}{{{#!if (o<l)&&(d==false)
r14
369##19
r9
370{{{#!if p=r[o]
r31
371}}}{{{#!if p==46
r12
372{{{#!if d=true
r16
373}}}}}}{{{#!if p==48
r7
3740}}}{{{#!if p==49
3751}}}{{{#!if p==50
3762}}}{{{#!if p==51
3773}}}{{{#!if p==52
3784}}}{{{#!if p==53
3795}}}{{{#!if p==54
3806}}}{{{#!if p==55
3817}}}{{{#!if p==56
3828}}}{{{#!if p==57
r36
3839}}}{{{#!if o+=1
r19
384}}}}}}{{{#!if (o<l)&&(d==false)
r14
385##20
r9
386{{{#!if p=r[o]
r31
387}}}{{{#!if p==46
r12
388{{{#!if d=true
r16
389}}}}}}{{{#!if p==48
r7
3900}}}{{{#!if p==49
3911}}}{{{#!if p==50
3922}}}{{{#!if p==51
3933}}}{{{#!if p==52
3944}}}{{{#!if p==53
3955}}}{{{#!if p==54
3966}}}{{{#!if p==55
3977}}}{{{#!if p==56
3988}}}{{{#!if p==57
r36
3999}}}{{{#!if o+=1
r16
400}}}}}}{{{#!if o=0, l=u.length
401}}}{{{#!if u[0]==45
402##음수로 마이너스가 표시되면 넘기기
r36
403{{{#!if o+=1
r16
404}}}}}}{{{#!if l-o>2
405##소수점이 나오면 "0."으로 2자리 차지하므로 소수점 표기.
r36
406{{{#!if o+=1
r37
407##일의 자리 넘기기
r28
408}}}{{{#!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
409##".000000"은 표기하지 않음. 소수점 표기
410.{{{#!if o+=1
411}}}}}}}}}{{{#!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
412##1
r18
413{{{#!if p=u[o]
r17
414}}}{{{#!if p==48
r21
4150}}}{{{#!if p==49
r17
4161}}}{{{#!if p==50
4172}}}{{{#!if p==51
4183}}}{{{#!if p==52
4194}}}{{{#!if p==53
4205}}}{{{#!if p==54
4216}}}{{{#!if p==55
4227}}}{{{#!if p==56
4238}}}{{{#!if p==57
r36
4249}}}{{{#!if o+=1
r19
425}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48)||(u[o+4]!=48))
r17
426##2
r18
427{{{#!if p=u[o]
r17
428}}}{{{#!if p==48
4290}}}{{{#!if p==49
4301}}}{{{#!if p==50
4312}}}{{{#!if p==51
4323}}}{{{#!if p==52
4334}}}{{{#!if p==53
4345}}}{{{#!if p==54
4356}}}{{{#!if p==55
4367}}}{{{#!if p==56
4378}}}{{{#!if p==57
r36
4389}}}{{{#!if o+=1
r19
439}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48)||(u[o+3]!=48))
r17
440##3
r18
441{{{#!if p=u[o]
r17
442}}}{{{#!if p==48
4430}}}{{{#!if p==49
4441}}}{{{#!if p==50
4452}}}{{{#!if p==51
4463}}}{{{#!if p==52
4474}}}{{{#!if p==53
4485}}}{{{#!if p==54
4496}}}{{{#!if p==55
4507}}}{{{#!if p==56
4518}}}{{{#!if p==57
r36
4529}}}{{{#!if o+=1
r19
453}}}}}}{{{#!if (o<l)&&(d==true)&&((u[o+1]!=48)||(u[o+2]!=48))
r17
454##4
r18
455{{{#!if p=u[o]
r17
456}}}{{{#!if p==48
4570}}}{{{#!if p==49
4581}}}{{{#!if p==50
4592}}}{{{#!if p==51
4603}}}{{{#!if p==52
4614}}}{{{#!if p==53
4625}}}{{{#!if p==54
4636}}}{{{#!if p==55
4647}}}{{{#!if p==56
4658}}}{{{#!if p==57
r36
4669}}}{{{#!if o+=1
r19
467}}}}}}{{{#!if (o<l)&&(d==true)&&(u[o+1]!=48)
r17
468##5
r18
469{{{#!if p=u[o]
r17
470}}}{{{#!if p==48
4710}}}{{{#!if p==49
4721}}}{{{#!if p==50
4732}}}{{{#!if p==51
4743}}}{{{#!if p==52
4754}}}{{{#!if p==53
4765}}}{{{#!if p==54
4776}}}{{{#!if p==55
4787}}}{{{#!if p==56
4798}}}{{{#!if p==57
r36
4809}}}{{{#!if o+=1
r19
481}}}}}}{{{#!if (o<l)&&(d==true)
r17
482##6
r18
483{{{#!if p=u[o]
r17
484}}}{{{#!if p==48
r22
485##"0" 미표기
486}}}{{{#!if p==49
r17
4871}}}{{{#!if p==50
4882}}}{{{#!if p==51
4893}}}{{{#!if p==52
4904}}}{{{#!if p==53
4915}}}{{{#!if p==54
4926}}}{{{#!if p==55
4937}}}{{{#!if p==56
4948}}}{{{#!if p==57
r36
4959}}}{{{#!if o+=1
r30
496}}}}}}}}}}}}