超高精度Int型演算
減法演算関数

超高精度Int型演算
減法演算関数

 
減法のソースコードを変更しました。
 
大きい整数の演算をしようとすると、Double型になりますが、Double型の最大値は。18,446,744,073,709,551,615です。これ以上の値になるとコンパイルエラーが発生します。
先にこの桁数の問題を解決する「超高精度演算加法演算関数」を示しましたが、今回は減算関数を作ります。
 

減法演算関数

 

 

検算

プログラムでの演算の正確性を確かめるためにDouble型での計算と比較します。
num1 = 9036459452678914
num2 = 39154027691564

として計算すると
str1 + str2 = 899730542498735 (Double型による計算)
num1 + num2 = 8997305424987350 (プログラムによる計算)
となります。

テスト?

でたらめに打った数十桁の数字で(まだ乱数関数を作成していないので)計算してみます。
 
let num1 =
"1428738749537871269378259675325837651673285176732546817617323859876593288798653867465325997"
let num2 =
593818396838767517457982137129358179856293782157975863172516736561961382375
計算結果
1428738749537870675559862836558320193691148047374366961323541701900730116281917305503943622