Obávám se, že na takhle velká čísla vám nic nepomůže. Budete muset sčítat, odčítat, násobit a dělit jako nás to všechny učili ve škole - pod sebe. Sčítání bude vypadat takto:
Dim c1 As String = " 123456789" 'musíte čísla správně zarovnat
Dim c2 As String = "9876543210" ' na stejnou délku
Dim c3 As String = ""
Dim prenos As Integer = 0
'projít všechny sloupce odzadu
For i As Integer = c1.Length - 1 To 0
'spočítat součet sloupečku i
Dim mezisoucet As Integer = CInt(c1(i)) + CInt(c2(i)) + prenos
'pokud je součet větší než deset, "držet" si jedničku, kterou přičteme dál
prenos = mezisoucet \ 10
'zapsat číslici (po odečtení případné desítky) do výsledku (odzadu)
c3 = CStr(mezisoucet Mod 10) & c3
Next
Odčítání, násobení a dělení bude fungovat podobně. Asi by bylo lepší udělat nějaké optimalizace (místo Stringu mít pole bajtů a uchovávat to po cifrách, nebo rozsekat číslo po skupinách po desíti a sčítat je zvlášť (normálním sčítáním) a pak to dát nějak dohromady atd.). Záleží, kolik výpočtů budete provádět. Připravte se na ale to, že tyto matematické operace budou opravdu velmi pomalé, nedělejte jich tedy moc za sebou. Smím se zeptat, na co potřebujete tak obrovskou přesnot? V běžné praxi se s tím příliš nesetkáváme.
|