r100 vs r101
......
181181
{{{#!if this.rp=rb.length
182182
}}}
183183
}}}
184
184185
rb가 음수이면 rb의 첫번째(0번 index)의 문자열에는 마이너스(-)가 들어갑니다. 이 때는 rp를 rb의 마이너스 문자열을 세지 않은 자릿수가 되도록 앞에서 정의했던 rb.length에서 1만큼 줄여 정의합니다. ap, bp는 마이너스를 붙이기 전에 값이 고정되어 있으므로 rp처럼 줄일 필요가 없습니다.
185186
{{{#!if rb[0]==45
186187
{{{#!if rp=rp-1
187188
}}}}}}
188189
190
ru값이 어떤지 보고 각 경우 rb값이 어떠한가에 따라 rb만 정리하거나 rb와 ru 모두 정리합니다.
189191
Case 1 : ru가 0보다 큰 경우
190192
ru는 정수이므로 ru가 0보다 크면 곧 ru는 1 이상의 정수이며, 1 이상이면 a+b 또는 a-b가 양수+음수 꼴이 되더라도 소수점 아래 정리를 하면 됩니다. rb를 정리하는 과정에서 ru에서 1을 빌려오거나 ru에 1이 더해질 수도 있습니다. 앞에서 rb를 string으로 바꿨으므로 +rb를 다룹니다.
191193
{{{#!if ru>0
......
200202
}}}
201203
}}}
202204
203
Case 1-2 : rb가 음수 되는 경우 ru에서 1을 빌려옵니다. 1보다 작은 양수값에서 1보다 작은 양수값을 빼면 -1보다 작을 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다.
205
Case 1-2 : rb가 음수 경우 ru에서 1을 빌려옵니다. 1보다 작은 양수값에서 1보다 작은 양수값을 빼면 -1보다 작을 수 없으며, 소수점 아래 자릿수가 초과되지 않습니다.
204206
{{{#!if +rb<0
205207
{{{#!if ru=ru-1
206208
}}}
......
275277
여기까지가 소수점 아래 자릿수 숫자들의 계산과정입니다.
276278
}}}
277279
280
a와 b 모두 정수인 경우 ap, bp는 모두 0이 되므로 ru만을 그대로 문자열로 바꾸면 되며 소수점 아래(rb)는 표기해야 할 필요가 없으므로 rb="", (소수점 아래 자릿수)rp=0을 반환합니다.
281
{{{#!if (ap==0)&&(bp==0)
282
{{{#!if this.ru=ru.toString(), rb="", rp=0+0
283
}}}}}}
284
278285
여기까지가 덧셈 또는 뺄셈연산의 계산과정입니다.
279286
}}}
280287
......