r132 vs r133
......
2121
{{{#!if this.as=a.toString(), this.bs=b.toString(), this.ru=0+0, this.rb=0+0, this.rp=0+0, this.i=0+0, this.tv=1, this.ea=0+0, this.eb=0+0, this.wa=0+0, this.wb=0+0
2222
}}}{{{#!if this.al=as.length, this.bl=bs.length, this.ad=as.indexOf("."), this.bd=bs.indexOf("."), this.rs="", this.ri=""
2323
}}}{{{#!if ad!=-1
24
소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기.
24
소수점이 발견되는 자리 번호가 ad이므로 ad+1번에 해당되는 자리부터 끝까지 표기합니다.
2525
{{{#!if this.au=as.substr(0,ad), this.ab=as.substr(ad+1, al-ad-1), this.ap=ab.length
2626
}}}{{{#!if (au=="")||(au=="-")||(au=="+")
2727
.12345 식으로 또는 -.12345 식으로 기입할 경우 upper 값을 0으로 부여합니다.
2828
{{{#!if au="0"
2929
}}}}}}}}}{{{#!if ad==-1
30
소수점이 존재하지 않을 경우 au 문자열 길이값을 ad로 정의합니다.
30
소수점이 존재하지 않을 경우 au 문자열 길이값을 ad로 정의합니다. au의 마지막 문자열 index는 ad-1이 됩니다.
3131
{{{#!if this.au=as, ab="", ap=0+0, ad=au.length
3232
}}}}}}{{{#!if bd!=-1
3333
{{{#!if this.bu=bs.substr(0,bd), this.bb=bs.substr(bd+1, bl-bd-1), this.bp=bb.length
......
500500
18자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
501501
다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
502502
503
a 또는 b가 음수가 될 경우 소수점 윗부분 문자열인 au 또는 bu에서 마이너스(-)를 제거합니다.
504
{{{#!if au[0]==45
505
{{{#!if au=au.substr(1,ad-1)
506
}}}}}}
507
{{{#!if bu[0]==45
508
{{{#!if bu=bu.substr(1,bd-1)
509
}}}}}}
510
503511
소수점 아래 자리가 존재하는 경우 소수점 아래 자리를 먼저 연산합니다. 그렇지 않은 경우 소수점 윗부분을 연산합니다.
504512
{{{#!if (ap>0)||(bp>0)
505513
......
513521
ap+bp 값이 18 이하일 경우 그 값을 i로 둡니다.
514522
{{{#!if ap+bp<=18
515523
{{{#!if i=ap+bp
516
}}}}}}
524
}}}}}}}}}
517525
18자리씩 곱셈계산을 할 수 있도록 입력했던 a와 b의 문자열을 확장할 것입니다.
518526
a와 b 각각 소수점 윗자리와 소수점 아래자리의 문자열의 빈 공간을 0으로 채워 18자로 만듭니다.
519527
소수점 윗자리는 왼쪽에서 0을 채워나갑니다.
......
600608
소수점 아래자리는 오른쪽에서 0을 채웁니다. (ap, bp값은 보존됩니다.)
601609
602610
}}}
603
}}}
604611
605612
error code 03 번 : 오버플로
606613
error code 04 번 : 언더플로
......