获取" double.Parse(string)的最佳重载方法匹配有一些无效的参数"错误

时间:2013-06-30 14:45:43

标签: c#

使用这种代码

double socialSecurityFee = 0;
double xsocialSecurityFee = double.Parse (socialSecurityFee);

我遇到了这种错误

  

错误CS1502:最佳重载方法匹配   `double.Parse(string)'有一些无效的参数(CS1502)   (socialSecurityFee)

我的代码出了什么问题?

5 个答案:

答案 0 :(得分:4)

  

我的代码出了什么问题?

正是编译器告诉你的内容 - double.Parse的任何重载都不适用于double类型的单个参数。它甚至不清楚你的意思是什么 - 解析通常是从一种类型(通常是字符串)转换为另一种类型(在这种情况下为double)。您的初始值已经一个double,那么您期望它做什么?

我的猜测是你实际上在某个地方有一个字符串,并且你正试图解析它 - 所以你需要改变你的参数,以便它使用该字符串而不是socialSecurityFee变量。目前尚不清楚您是否需要两个double类型的变量。

此外,如果这意味着代表货币金额(听起来像),您应该考虑使用decimal代替double

答案 1 :(得分:0)

Double.Parse有四次重载。其中只有一个接受一个参数。该参数的类型为string,但您尝试传递double。那是完全编译器错误消息告诉你的内容。您不能这样做,因为double不能隐式转换为string。您不能使用不会隐式转换为方法所期望的类型的参数来调用方法。

但是你想做什么? socialSecurityFeedouble,那你为什么要解析呢?解析意味着分析string以赋予其意义。

答案 2 :(得分:0)

方法double.Parse()需要一个string参数,并且您传递的值为double

由于您的原始值已经是双倍,因此您甚至不需要使用double.Parse()

答案 3 :(得分:0)

double.Parse期望string作为参数,并且您尝试使用其他double值来调用它。

我不确定您为什么在这里使用double.Parse,但要使其有效,请添加ToString()来电:

double socialSecurityFee = 0;
double xsocialSecurityFee = double.Parse(socialSecurityFee.ToString());

或者只是分配值本身(因为它已经是double,不是吗?):

double socialSecurityFee = 0;
double xsocialSecurityFee = socialSecurityFee ;

答案 4 :(得分:0)

socialSecurityFee已经是双倍的了。 double.Parse期待一个字符串,很难。你不需要在这里解析任何东西。你想做什么?