Bonjour à vous tous !

Je cherche depuis pas mal de temps dans les différents sites de sources VB un ensemble de fonctions permettant d'effectuer des calculs "usuels" sur des chaines.

Je m'explique, au lieu d'utiliser les types numériques (très limités pour des applications de math), on utiliserai le type string pour stocker un nombre et on lui ferai subir des opérations comme on les apprenait en CE1 (additions à retenues...). Cela permet de passer de la limite des quelques dizaines de digits des types numériques aux deux milliards de caractère inscriptibles dans une chaine. La seule limite de calcul en serait donc la puissance de l'ordinateur.

Je cherche donc les 4 opérations élémentaires (addition, soustraction, multiplication et division) sous cette forme mais travaillant sur des chaines gérant le séparateur décimal (soit avec une mantisse soit avec le caractère directement dans le chaine) et les nombres négatifs.

J'ai réussi à programmer une fonction qui additionne une chaine d'entier naturel de cette manière, elle additionne des nombres de plusieurs milliers de digits en moins d'une seconde : (Si vous ne voyez pas ce que je veux dire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    Public Function Addition(ByVal pNombre1 As String, ByVal pNombre2 As String, Optional ByVal pArrondi As Boolean = True) As String
        ' Equilibrage & Déclarations
        pNombre1 = EquilibrerChiffres(pNombre1, pNombre2)
        pNombre2 = EquilibrerChiffres(pNombre2, pNombre1)
        Dim cResultat As String = "", cRetenue As Byte = 0
        Dim cTemp1 As Byte, cTemp2 As Byte, cTemp As Byte
        ' Balayage
        For i As Integer = pNombre1.Length To 1 Step -1
            ' Addition monodigitale
            cTemp1 = Mid(pNombre1, i, 1)
            cTemp2 = Mid(pNombre2, i, 1)
            cTemp = cTemp1 + cTemp2 + cRetenue
            cRetenue = 0
            ' Retenue
            If Len(cTemp.ToString) = 2 Then
                cRetenue = Val(Mid(cTemp.ToString, 1, 1))
                cTemp = Val(Mid(cTemp.ToString, 2, 1))
            End If
            cResultat = cTemp.ToString & cResultat ' Concaténation
        Next i
        If pArrondi Then ' Retourne l'écriture arrondie
            Return Val(cRetenue & cResultat).ToString
        Else ' Retourne l'équiture complète
            If cRetenue <> 0 Then
                Return cRetenue & cResultat
            Else : Return cResultat
            End If
        End If
    End Function
 
    Public Function EquilibrerChiffres(ByVal pNombre1 As String, ByVal pNombre2 As String) As String
        If pNombre1.Length < pNombre2.Length Then
            Dim cZeros As String = ""
            For i As Integer = 1 To (pNombre2.Length - pNombre1.Length)
                cZeros &= "0"
            Next
            Return cZeros & pNombre1
        Else : Return pNombre1
        End If
    End Function
Est-ce que quelqu'un saurait où trouver ces 4 fonctions sur les nombres décimaux et négatifs ?

J'ai déjà beaucoup fouillé le net, en vain.
Merci beaucoup d'avance, Léo.