错误'无法将double转换为int'

时间:2016-05-23 12:46:19

标签: c# compiler-errors type-conversion

我认为我的代码是一个奇怪的问题。我有一个执行简单查询并返回结果的方法。我试图将值作为双精度返回但是我收到错误:

  

CS0266无法隐式转换类型' double' to' int'。一个明确的   存在转换(你错过了演员吗?)

我没有尝试进行任何转换,所以我不明白问题所在。 这是调用代码:

  double displacement = sqLite.GetDisplacement( transItem.Item.Name );

以下是名为的代码:

public int GetDisplacement( string item )
{
    double dDisposition = 0;
    string sSql = "SELECT [Displacement] FROM [Items] WHERE [Name] = '" + item + "';";

    using ( var dbConnection = new SQLiteConnection( sConnectionString ) )
    {
        try
        {
            dbConnection.Open();
            SQLiteCommand cmd = new SQLiteCommand( sSql, dbConnection );
            object result = cmd.ExecuteScalar();

            dDisposition = Convert.ToDouble( result );

        }
        catch ( Exception e )
        {
            MessageBox.Show( "Error retreiving displacement information: " + e.ToString() );
        }

    }

    return dDisposition; // This is where I get the error

}

我没有尝试转换任何内容,所有内容都被声明为double。我曾多次尝试清理和重建解决方案,但无济于事。我错过了什么?

1 个答案:

答案 0 :(得分:1)

方法声明声明将返回int值:

public int GetDisplacement (string item)

但是在代码中,return语句返回一个double类型的变量:

double dDisposition = 0;

// Your code here

return dDisposition; 

您必须更改其中一个,因此基本上更改返回类型:

public double GetDisplacement (string item)

dDisposition变量的类型以及converter method

int dDisposition = 0;

// Your code here
dDisposition = Convert.ToInt32(result);
// More of your code here

return dDisposition;