Avatar billede tzr Nybegynder
05. juni 2001 - 00:45 Der er 3 kommentarer og
1 løsning

Store tal der skal lææges sammen

Er der nogen der kan lave, ved hvor jeg kan hente noget kode der kan lægge meget store tal sammen uden at det bliver til 5e+632.
Eller også bare rette nedenstående så det virker.
Ingen point hvis det ikke virker.

på forhånd tak!

------------------------------
Option Explicit

Public Function CalcAdd(Number1 As String, Number2 As String) As String
Dim i As Integer
Dim BlockSize As Integer
Dim BlockCount As Integer

BlockCount = 100
Dim NumberArray(3, 100) As Long
\'  +----------------- - - - - -
\' 0| Add
\'  +----------------- - - - - -
\' 1| Number1
\'  +----------------- - - - - -
\' 2| Number2
\'  +----------------- - - - - -
\' 3| Result
\'  +----------------- - - - - -
BlockSize = 1

\'Put number1 into place
For i = 0 To BlockCount
    NumberArray(1, i) = Right(Number1, BlockSize)
    Number1 = Mid(Number1, BlockSize + 1, Len(Number1) - BlockSize)
    If Len(Number1) = 0 Then Exit For
Next

\'Put number2 into place
For i = 0 To BlockCount
    NumberArray(2, i) = Right(Number2, BlockSize)
    Number2 = Mid(Number2, BlockSize + 1, Len(Number2) - BlockSize)
    If Len(Number2) = 0 Then Exit For
Next

\'Adds number1 and number2 together into result
Dim TempNumber As String
For i = 0 To BlockCount
    TempNumber = NumberArray(0, i) + NumberArray(1, i) + NumberArray(2, i)
    If Len(TempNumber) > BlockSize Then
        NumberArray(3, i) = Right(TempNumber, BlockSize)
        NumberArray(0, i + 1) = Left(TempNumber, Len(TempNumber) - BlockSize)
        \'MsgBox Left(TempNumber, Len(TempNumber) - BlockSize)
        \'Stop
    Else
        NumberArray(3, i) = TempNumber
    End If
    If TempNumber = 0 Then Exit For
Next

\'Takes all the resultblocks and puts then in one line before sending them back
Dim FinishNumber As String
FinishNumber = \"\"
For i = 0 To BlockCount
    If Not NumberArray(3, i) = 0 Then
        FinishNumber = NumberArray(3, i) & FinishNumber
        \'Stop
    End If
Next
CalcAdd = FinishNumber
End Function
------------------------------
Avatar billede tzr Nybegynder
05. juni 2001 - 00:46 #1
btw, variablen BlockSize skal egentlig være 9
Avatar billede tdaugaard Nybegynder
05. juni 2001 - 01:07 #2
Du skal bare Dim\'e dine variabler som Long\'s ..
Avatar billede tzr Nybegynder
05. juni 2001 - 01:09 #3
fandt fejlen (håber jeg)
Avatar billede tzr Nybegynder
05. juni 2001 - 01:09 #4
nej, det skal jeg ikke ... for så virker det SLET ikke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester