Não é possível implicitamente converter tipo ‘double’ para ‘string’

Eu estou fazendo um programa para pegar o raio de um círculo e produzir o diâmetro, a área e a circunferência. Estou tentando começar com o diâmetro, mas continuo recebendo o erro: Não é possível converter implicitamente o tipo ‘double’ para ‘string’. Eu fiz programas semelhantes usando números inteiros, mas não consigo entender a vida de mim, como receber floats em checkboxs de texto e calculá-los para que eu possa gerá-los. Este é o meu código até agora.

   protected void Button1_Click(object sender, EventArgs e) { double pi = 3.14159; lblDiameter.Text = (double.Parse(radius.Text)) * (double.Parse(radius.Text)); }    Circles    

Onde eu estou errando?

Você provavelmente está perdendo apenas um .ToString ():

 lblDiameter.Text = (double.Parse(radius.Text) * double.Parse(radius.Text)).ToString(); 

Seria mais claro e você evitaria analisar a string duas vezes armazenando o número em uma variável local:

 var value = double.Parse(radius.Text); lblDiameter.Text = (value * value).ToString(); 

Agora, um diâmetro é realmente igual ao quadrado do raio? 😉

Você está recebendo o erro porque está lidando com o tipo de dados double no lado direito da equação e uma string à esquerda.

Altere seu código de:

 lblDiameter.Text = (double.Parse(radius.Text)) * (double.Parse(radius.Text)); 

Para:

 lblDiameter.Text = Convert.ToString((double.Parse(radius.Text)) * (double.Parse(radius.Text))); 

ou:

 lblDiameter.Text = (double.Parse(radius.Text) * (double.Parse(radius.Text)).ToString(); 

ou:

 double radius = double.Parse(textBox1.Text); lblDiameter.Text = (radius * radius).ToString(); 

Além disso, você não precisa definir pi. Existe uma constante no namespace Math.

 double pi = Math.PI; 

Eu também sugiro definir uma variável radius para usar novamente em vez de fazer (double.Parse (radius.Text) cada vez. Como no meu exemplo acima.

 double radius = double.Parse(textBox1.Text); 

Então você pode fazer coisas como:

 lblDiameter.Text = Convert.ToString(radius * radius); 

e:

 lblDiameter.Text = (radius * radius).ToString(); 

Além disso:

 double circum = (2 * pi) * radius; 

Na linha de código lblDiameter.Text = (double.Parse(radius.Text)) * (double.Parse(radius.Text));

O lado esquerdo lblDiameter.Text é considerado uma string e o lado direito é um duplo, enquanto você analisa o valor da checkbox de texto para um duplo.

Veja o que você deve fazer:

  double diameter = 0; diameter = double.Parse(radius.Text) * double.Parse(radius.Text); 

Agora, após a equação, você pode atribuir o valor de “diameter” a lblDiameter, mas você precisa convertê-lo em String:

 lblDiameter.Text = diameter.ToString(); 

Se preferir, você pode usar apenas 2 linhas de códigos como abaixo:

  double diameter = double.Parse(radius.Text) * double.Parse(radius.Text); lblDiameter.Text = diameter.ToString();