Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法隐式将双精度转换为字符串错误_C#_.net - Fatal编程技术网

C# 无法隐式将双精度转换为字符串错误

C# 无法隐式将双精度转换为字符串错误,c#,.net,C#,.net,我有一个excel表格,有几个标题。其中一个标题是Param2。在我的代码中,分配给Param2的变量是strParam2。这就是strParam2在我的代码中声明的方式 String strParam2 = xlRange.Cells[row, 7].Value; 理想情况下,我的代码读取excel工作表中的单元格并执行一组操作。我在excel工作表的Param2下的单元格中给出了一个值2。为了将其转换为字符串,我使用了 System.Int32.TryParse(strParam2.To

我有一个excel表格,有几个标题。其中一个标题是Param2。在我的代码中,分配给Param2的变量是strParam2。这就是strParam2在我的代码中声明的方式

 String strParam2 = xlRange.Cells[row, 7].Value;
理想情况下,我的代码读取excel工作表中的单元格并执行一组操作。我在excel工作表的Param2下的单元格中给出了一个值2。为了将其转换为字符串,我使用了

System.Int32.TryParse(strParam2.ToString(), out iDetailLevel);
然而,我得到了一个错误“不能隐式地将double转换为string”我也尝试了这一行,但是我再次得到了一个错误

System.Double.TryParse(strParam2.ToString(), out iDetailLevel);

这里有什么问题?以前有没有人经历过类似的事情

最有可能的情况是,您在分配给
strParam2
的行上得到错误,因为
xlRange.Cells[row,7]。Value
返回一个
双精度
,很可能无法隐式转换为
字符串,由于
xlRange.Cells[row,7],因此在分配给
strParam2
的行上出现错误。Value
返回一个
双精度
,无法隐式转换为
string

的,看起来该特定单元格的值是双精度的,您的代码正试图通过
=
将其隐式转换为字符串。您需要检查单元格的值并进行相应的转换

String strParam2=xlRange.Cells[row,7].Value

将是:

String strParam2=xlRange.Cells[row,7].Value.ToString()

如果,如您所说,
strParam2
在代码中的其他地方使用,则只需创建一个新字符串来保存标题文本,并保持其不变:


string headerText=xlRange.Cells[row,7].Value.ToString()

看起来该特定单元格的值是双精度的,您的代码试图通过
=
将其隐式转换为字符串。您需要检查单元格的值并进行相应的转换

String strParam2=xlRange.Cells[row,7].Value

将是:

String strParam2=xlRange.Cells[row,7].Value.ToString()

如果,如您所说,
strParam2
在代码中的其他地方使用,则只需创建一个新字符串来保存标题文本,并保持其不变:

string headerText=xlRange.Cells[row,7].Value.ToString()

如果您有该行:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();
正如杜安建议的那样。您不需要在解析中包含.ToString()。只需使用strParam2值。

如果您有以下行:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();


正如杜安建议的那样。您不需要在解析中包含.ToString()。只需使用strParam2值。

什么是
iDetailLevel
?strParam2的类型是Int32还是Double,或者(如前缀所示)是字符串?@KazR如前缀所示,strParam2在默认情况下声明为字符串…@user1473998看起来该特定单元格的值是双精度的,并且您的代码正试图通过
=
将其隐式转换为字符串。您需要检查单元格的值并相应地转换什么是
iDetailLevel
?strParam2是Int32类型还是Double类型,或者(如前缀所示)是字符串?@KazR如前缀所示,strParam2在默认情况下声明为字符串…@user1473998看起来该特定单元格的值是双精度的,并且您的代码正试图通过
=
将其隐式转换为字符串。您需要检查单元格的值并进行相应的转换是的,完全正确…我只在那一行中得到一个错误..实际上,不同的函数多次使用相同的字符串变量strParam2…其中一个函数要求strParam2为int,对于ex 2、3或5,当我得到这个错误时。我如何为那个特定的函数使用这个字符串变量?有什么想法吗???以后不能将
字符串
变量更改为
int
。你不能为不同的类型使用不同的变量吗?是的,没错…我只在那一行中得到一个错误..实际上,同一个字符串变量strParam2被不同的函数多次使用..其中一个函数要求strParam2是int,对于ex 2、3或5,当我得到这个错误时。我如何为那个特定的函数使用这个字符串变量?有什么想法吗???以后不能将
字符串
变量更改为
int
。不能对不同的类型使用不同的变量吗?嗨…我在代码中的一些函数中使用了相同的变量,这些函数要求它是双精度的。如果我使用你的想法,我的其他函数会出错…为什么不创建一个新字符串来保存标题文本,然后将
strParam2
单独保留?如果我遵循你的想法“无法对空引用执行运行时绑定”,我会出错dat错误出现在字符串headerText=xlRange.Cells[row,7].Value.ToString()中;您需要确保单元格值为
!=null
在赋值之前,我在代码中的一些函数中使用了相同的变量,这些函数要求它是双精度的。如果我使用你的想法,我的其他函数会出错…为什么不创建一个新字符串来保存标题文本,然后将
strParam2
单独保留?如果我遵循你的想法“无法对空引用执行运行时绑定”,我会出错dat错误出现在字符串headerText=xlRange.Cells[row,7].Value.ToString()中;您需要确保单元格值为
!=分配前为空