Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - problema con Numerics.BigInteger in VB.NET
Forum - C# / VB.NET - problema con Numerics.BigInteger in VB.NET

Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 20:43
Domenica, 18/03/2012
Salve a tutti. Il problema è molto semplice: se creo una variabile di tipo Numerics.BigInteger (in vb.net 4) e le assegno un certo valore da stringa il valore restituito sarà diverso. Piccolo esempio:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         Dim b1, b2 As Numerics.BigInteger
  3.         b1 = "78213768726538583125623462472398"
  4.         b2 = "9823697582638526347637"
  5.         MsgBox(b1.ToString & "+" & vbCrLf & b2.ToString & "=" & vbCrLf & "___________________" & vbCrLf & (b1 + b2).ToString)
  6.     End Sub



Quello che appare nella message box è:

78213768726538579629945691045888+
9823697582638527152128=
___________________
78213768736362277212584218198016

Come si nota facilmente i primi due valori non corrispondono ai valori inseriti e, di conseguenza, la somma è errata. Da cosa può dipendere il problema?

PM
Avatar
crybot (Member)
Pro


Messaggi: 115
Iscritto: 13/09/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 21:05
Domenica, 18/03/2012
francamente non capisco come fai a non riscontrare errore assegnando una stringa ad una variabile di tipo BigInteger...
in ogni caso, basta che sostituisci l'assegnazione con questo:

Codice sorgente - presumibilmente Plain Text

  1. b1 = BigInteger.Parse("78213768726538583125623462472398")
  2.         b2 = BigInteger.Parse("9823697582638526347637")


Grazie! - I)eathBringer - 18/03/12 21:19
PM