Ultima modifica:
Salve. Sto scrivendo un programma in C# utilizzando lo strumento del Form Windows su Visual Studio. Questo programma ha lo scopo di convertire un qualsiasi numero in qualsiasi base nei corrispettivi numeri di tutte le altre basi. Sono arrivato alla conversione da binario a decimale e l'ho quasi finita, ma mi dà un errore nel calcolo del peso della cifra (In particolare col metodo Math.Pow). Ho già provato a fare il calcolo diretto come m^n, ma dà delle cifre completamente sbagliate. Ho guardato anche che la posizione fosse sempre corretta e così era.
Ecco qui di seguito il codice con un commento per farvi capire dove si trova l'errore.
Ecco qui di seguito il codice con un commento per farvi capire dove si trova l'errore.
C#:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1_TextChanged != null)
{
long BinContenute = Convert.ToInt32(InputBoxBin.Text);
long position = 0;
Console.WriteLine("Valore inserito in Bin");
long DecValue = 0;
long basen = 2;
while (BinContenute > 0)
{
long weight = Math.Pow(Convert.ToDouble(basen, position)); //Errore= Argomento 2; Non è possibile convertire da 'long' a 'System.IFormatProvider?'
if (BinContenute%2==1)
{
DecValue = DecValue + (weight * 1);
Console.WriteLine("La posizione: " + position);
position++;
}
if (BinContenute%2==0)
{
Console.WriteLine("La posizione: " + position);
position++;
}
Console.WriteLine("Il peso: " + weight);
BinContenute /= 10;
}
InputBoxDec.Text = Convert.ToString(DecValue);
}
}