无法隐式转换类型' double' to' int'。 -错误

时间:2014-05-22 10:11:20

标签: c#

以下是编写C#代码以查找圆圈区域的注意事项

using System;
namespace DataTypeApplication 
{
    class Program 
    {
        static void Main(string[] args) 
        {
            double area;
            const double pi = 3.14;
            int side;
            Console.WriteLine("enter the radius of circle:");
            side = Convert.ToDouble(Console.ReadLine());
            area = (pi * side * side);
            Console.WriteLine("area is {}", area);
}
}
}

它在行上出错

  

side = Convert.ToDouble(Console.ReadLine());

  

无法将类型'double'隐式转换为'int'。存在显式转换(您是否错过了演员?)

我做错了什么?

3 个答案:

答案 0 :(得分:4)

如果您加入side变量的声明和分配

int side = Convert.ToDouble(Console.ReadLine());  

很容易看到您将类型double的值分配给int类型的变量

考虑使用Int32.TryParse方法安全地解析整数的字符串表示形式或将side声明为double

答案 1 :(得分:0)

在这里,您使用此行代码Convert.ToDouble(Console.ReadLine());

从用户获取值并将其转换为 Double

现在你所做错的是你将这个Double类型的值存储在INT类型变量中,现在为了纠正这个问题你应该将变量'side'声明为

double side;

或使用此

输入cast ur输入值
side = (double) Convert.ToDouble(Console.ReadLine());

答案 2 :(得分:-1)

转换为int:

int side = (int)Convert.ToDouble(Console.ReadLine())