r130 vs r131
......
503503
{{{#!if (ap>0)||(bp>0)
504504
505505
소수점 아래 자릿수가 있는 숫자끼리 곱한 결과는 일반적으로 자릿수+자릿수만큼 소수점 아래 자릿수가 늘어납니다. java long으로 해볼 수 있는 자릿수가 18자리이므로 ap+bp값이 18을 넘어갈 경우 제19번 자리수부터 생각해야 합니다.
506
{{{#!if ap+bp >18
506
먼저 rp를 ap+bp 값으로 저장합니다.
507
{{{#!if this.rp=ap+bp
508
}}}{{{#!if ap+bp >18
507509
인덱스 i를 빌려와 소수점 아래 자릿수를 잡고 계산하는 과정에서 쓸 것입니다.
508510
{{{#!if i=ap+bp-18
509511
}}}}}}
......
511513
{{{#!if ap+bp<=18
512514
{{{#!if i=ap+bp
513515
}}}}}}
516
18자리씩 곱셈계산을 할 수 있도록 입력했던 a와 b의 문자열을 확장할 것입니다.
517
a와 b 각각 소수점 윗자리와 소수점 아래자리의 문자열의 빈 공간을 0으로 채워 18자로 만듭니다.
518
소수점 윗자리는 왼쪽에서 0을 채워나갑니다.
519
{{{#!if au.length<18
520
{{{#!if au="0"+au
521
}}}}}}{{{#!if au.length<18
522
{{{#!if au="0"+au
523
}}}}}}{{{#!if au.length<18
524
{{{#!if au="0"+au
525
}}}}}}{{{#!if au.length<18
526
{{{#!if au="0"+au
527
}}}}}}{{{#!if au.length<18
528
{{{#!if au="0"+au
529
}}}}}}{{{#!if au.length<18
530
{{{#!if au="0"+au
531
}}}}}}{{{#!if au.length<18
532
{{{#!if au="0"+au
533
}}}}}}{{{#!if au.length<18
534
{{{#!if au="0"+au
535
}}}}}}{{{#!if au.length<18
536
{{{#!if au="0"+au
537
}}}}}}{{{#!if au.length<18
538
{{{#!if au="0"+au
539
}}}}}}
540
541
{{{#!if au.length<18
542
{{{#!if au="0"+au
543
}}}}}}{{{#!if au.length<18
544
{{{#!if au="0"+au
545
}}}}}}{{{#!if au.length<18
546
{{{#!if au="0"+au
547
}}}}}}{{{#!if au.length<18
548
{{{#!if au="0"+au
549
}}}}}}{{{#!if au.length<18
550
{{{#!if au="0"+au
551
}}}}}}{{{#!if au.length<18
552
{{{#!if au="0"+au
553
}}}}}}{{{#!if au.length<18
554
{{{#!if au="0"+au
555
}}}}}}{{{#!if au.length<18
556
{{{#!if au="0"+au
557
}}}}}}
558
559
{{{#!if bu.length<18
560
{{{#!if bu="0"+bu
561
}}}}}}{{{#!if bu.length<18
562
{{{#!if bu="0"+bu
563
}}}}}}{{{#!if bu.length<18
564
{{{#!if bu="0"+bu
565
}}}}}}{{{#!if bu.length<18
566
{{{#!if bu="0"+bu
567
}}}}}}{{{#!if bu.length<18
568
{{{#!if bu="0"+bu
569
}}}}}}{{{#!if bu.length<18
570
{{{#!if bu="0"+bu
571
}}}}}}{{{#!if bu.length<18
572
{{{#!if bu="0"+bu
573
}}}}}}{{{#!if bu.length<18
574
{{{#!if bu="0"+bu
575
}}}}}}{{{#!if bu.length<18
576
{{{#!if bu="0"+bu
577
}}}}}}{{{#!if bu.length<18
578
{{{#!if bu="0"+bu
579
}}}}}}
580
581
{{{#!if bu.length<18
582
{{{#!if bu="0"+bu
583
}}}}}}{{{#!if bu.length<18
584
{{{#!if bu="0"+bu
585
}}}}}}{{{#!if bu.length<18
586
{{{#!if bu="0"+bu
587
}}}}}}{{{#!if bu.length<18
588
{{{#!if bu="0"+bu
589
}}}}}}{{{#!if bu.length<18
590
{{{#!if bu="0"+bu
591
}}}}}}{{{#!if bu.length<18
592
{{{#!if bu="0"+bu
593
}}}}}}{{{#!if bu.length<18
594
{{{#!if bu="0"+bu
595
}}}}}}{{{#!if bu.length<18
596
{{{#!if bu="0"+bu
597
}}}}}}
598
599
소수점 아래자리는 오른쪽에서 0을 채웁니다. (ap, bp값은 보존됩니다.)
600
514601
}}}
515602
}}}
516603
......