r144 vs r145
......
720720
}}}}}}
721721
722722
○○○○○○○○○○○○○○○○○○□□□□□□□□□□□□□□□□□■.■■■■■■■■■■■■■■■■■■●●●●●●●●●●●●●●●●●○
723
b의 소수점 아래 17번째와 곱합니다. 소수점 위 1번째, 소수점 아래 1~18번째, 소수점 아래 19~35번째에서 처리합니다. 문자열이 1칸 밀립니다.
723
b의 소수점 아래 17번째와 곱합니다. 소수점 위 1번째, 소수점 아래 1~18번째, 소수점 아래 19~35번째에서 처리합니다. 문자열이 1칸 밀립니다. 19~35번째 자리는 17자리이므로 17자리 숫자가 곱셈으로 18자리로 넘치게 되면 앞의 자리를 rb로 넘깁니다.
724724
{{{#!if tv=tv*10
725725
}}}{{{#!if tw=ab.substr(1,17), tw=(+tw)*(+bb.substr(16,1)), tw=tw.toString()
726
}}}{{{#!if tw.length==19
726
}}}{{{#!if tw.length==18
727727
{{{#if rb=(+rb)+(+tw.substr(0,1)), ri=(+ri)+((+tw.substr(1,18))*tv)
728
}}}}}}{{{#!if tw.length<=18
728
}}}}}}{{{#!if tw.length<=17
729729
{{{#!if ri=(+ri)+((+tw)*tv)
730730
}}}}}}{{{#!if ri=ri.toString(), ri.length==19
731731
{{{#if rb=(+rb)+(+ri.substr(0,1)), ri=(+ri.substr(1,18))
......
741741
}}}
742742
b의 소수점 아래 3번째 자리의 값과 곱하는 과정까지는 au 값이 19자리로 넘칠 일이 없습니다.
743743
744
○○○○○○○○○○○○○○○○○○□□□□□□□□□□□□□□□□■■.■■■■■■■■■■■■■■■■■■●●●●●●●●●●●●●●●●○○
745
b의 소수점 아래 17번째와 곱합니다. 소수점 위 1~2번째, 소수점 아래 1~18번째, 소수점 아래 19~34번째에서 처리합니다. 문자열이 1칸 또 밀립니다.
746
{{{#!if tv=tv*10
747
}}}{{{#!if tw=ab.substr(2,16), tw=(+tw)*(+bb.substr(15,1)), tw=tw.toString()
748
}}}{{{#!if tw.length==17
749
{{{#if rb=(+rb)+(+tw.substr(0,1)), ri=(+ri)+((+tw.substr(1,18))*tv)
750
}}}}}}{{{#!if tw.length<=16
751
{{{#!if ri=(+ri)+((+tw)*tv)
752
}}}}}}{{{#!if ri=ri.toString(), ri.length==19
753
{{{#if rb=(+rb)+(+ri.substr(0,1)), ri=(+ri.substr(1,18))
754
}}}}}}{{{#!if tw=au.substr(2,16)+ab.substr(0,2), tw=(+tw)*(+bb.substr(15,1)), tw=tw.toString()
755
}}}{{{#!if tw.length==19
756
{{{#if ru=(+ru)+(+tw.substr(0,1)), rb=(+rb)+(+tw.substr(1,18))
757
}}}}}}{{{#!if tw.length<=18
758
{{{#!if rb=(+rb)
759
}}}}}}{{{#!if rb=rb.toString(), rb.length==19
760
{{{#if ru=(+ru)+(+rb.substr(0,2)), rb=(+rb.substr(1,18))
761
}}}}}}{{{#!if tw=au.substr(0,1), tw=(+tw)*(+bb.substr(15,1))
762
}}}{{{#!if ru=(+ru)+(+tw)
763
}}}
744764
745765
746766
여기까지가 a*b 계산과정입니다.
......