r312 vs r313
......
128128
}}}}}}}}}
129129
130130
##== 2차 초기화 ==
131
유효성 검사가 종료되었으면 ts와 br를 false로 초기화합니다.
132
{{{#!if ts=false, br=false
131
유효성 검사가 종료되었으면 ts와 br를 false로 초기화합니다 유효성 검사에 쓰인 tm과 tn 값을 빈 문자열 값으로 초기화합니다.
132
{{{#!if tm="", tn="", ts=false, br=false
133133
}}}
134134
135135
입력한 소수점 아래에 입력한 값을 정리합니다. 이에 따라 ap, bp값도 다시 조정됩니다.
......
164164
{{{#!if bb=bb.substr(0,bp-1), bp=bp-1
165165
}}}}}}
166166
167
유효성 검사쓰인 tm과 tn 문자열 값으초기화합니다.
168
{{{#!if tm="", tn=""
167
다음 --앞자리0만 여러 적어놓고 장난치는 사람이 있까봐-- au를 값으로 바꾼 다음 다시 문자열로 변환하여 앞자리에 있는 0들을 모두 삭제합니다. bu도 그렇게 둡니다.
168
{{{#!if au=+au, au=au.toString(), bu=+bu, bu=bu.toString()
169169
}}}
170170
171
이 상태의 au, ab를 ma로 저장하고 bu, bb를 mb로 저장합니다.
172
{{{#!if ad==-1
173
{{{#!if ma=au
174
}}}}}}{{{#!if ad!=-1
175
{{{#!if ma=au+"."+ab
176
}}}}}}
177
{{{#!if bd==-1
178
{{{#!if mb=bu
179
}}}}}}{{{#!if bd!=-1
180
{{{#!if mb=bu+"."+bb
181
}}}}}}
182
au 앞에 음수 부호가 달려 있었다면 ma 앞에 음수 기호를 붙입니다.
183
{{{#!if as[0]==45
184
{{{#!if ma="-"+ma
185
}}}}}}
186
bu 앞에 음수 부호가 달려 있었다면 mb 앞에 음수 기호를 붙입니다.
187
{{{#!if bs[0]==45
188
{{{#!if mb="-"+mb
189
}}}}}}
190
171191
##== 덧셈, 뺄셈 ==
172192
덧셈과 뺄셈 계산과정을 적어봅니다.
173193
{{{#!if (f=="+")||(f=="-")
......
368388
18자리 숫자로 입력할 수 있는 최대 정수는 999,999,999,999,999,999입니다.
369389
다행히 999,999,999,999,999,999*9=8,999,999,999,999,999,991 < long 한계치 9,223,372,036,854,775,807 이라서 a*각 자릿수로 덧셈해볼 수는 있습니다.
370390
371
음수가 될 경우 소수점 윗부분 문자열은 "-" 기호가 붙으므로, 이것을 이용한 조건문을 하나 만들어 a와 b 둘의 부호가 서로 다를 경우 (a만 음수이거나 b가 음수일 경우) 계산 결과에 부호를 표시할 수 있게 만듭니다.
391
a 또는 b가 음수가 될 경우 as 또는 bs 문자열은 "-" 기호가 붙으므로, 이것을 이용한 조건문을 하나 만들어 a와 b 둘의 부호가 서로 다를 경우 (a만 음수이거나 b가 음수일 경우) 계산 결과에 부호를 표시할 수 있게 만듭니다.
372392
{{{#!if (as[0]==45)^(bs[0]==45)
373393
{{{#!if ns="-"
374394
}}}}}}
......
380400
{{{#!if bu=bu.substr(1,bd-1)
381401
}}}}}}
382402
383
그 다음 --앞자리에 0만 여러 개 적어놓고 장난치는 사람이 있을까봐-- au를 값으로 바꾼 다음 다시 문자열로 변환하여 앞자리에 있는 0들을 모두 삭제합니다. bu도 그렇게 둡니다.
384
{{{#!if au=+au, au=au.toString(), bu=+bu, bu=bu.toString()
385
}}}
386
387
이 상태의 au, ab를 ma로 저장하고 bu, bb를 mb로 저장합니다.
388
{{{#!if ad==-1
389
{{{#!if ma=au
390
}}}}}}{{{#!if ad!=-1
391
{{{#!if ma=au+"."+ab
392
}}}}}}
393
{{{#!if bd==-1
394
{{{#!if mb=bu
395
}}}}}}{{{#!if bd!=-1
396
{{{#!if mb=bu+"."+bb
397
}}}}}}
398
au 앞에 음수 부호가 달려 있었다면 ma 앞에 음수 기호를 붙입니다.
399
{{{#!if as[0]==45
400
{{{#!if ma="-"+ma
401
}}}}}}
402
bu 앞에 음수 부호가 달려 있었다면 mb 앞에 음수 기호를 붙입니다.
403
{{{#!if bs[0]==45
404
{{{#!if mb="-"+mb
405
}}}}}}
406
407
408403
##=== 자릿수 측정 ===
409404
나누는 자릿수에 맞춰 결과를 표시하고자 ac, bc를 자릿수를 나타내는 값으로 정의합니다.
410405
먼저 au는 앞에 적어놓은 0을 제거한 문자열이므로 +au>0인 경우 ac를 au의 문자열 길이에서 1을 뺀 값으로 정의합니다.
......