使用这种代码
double socialSecurityFee = 0;
double xsocialSecurityFee = double.Parse (socialSecurityFee);
我收到这种错误
错误 CS1502:“double.Parse(string)”的最佳重载方法匹配有一些无效参数 (CS1502) (socialSecurityFee)
我的代码有什么问题?
使用这种代码
double socialSecurityFee = 0;
double xsocialSecurityFee = double.Parse (socialSecurityFee);
我收到这种错误
错误 CS1502:“double.Parse(string)”的最佳重载方法匹配有一些无效参数 (CS1502) (socialSecurityFee)
我的代码有什么问题?
我的代码有什么问题?
正是编译器告诉您的内容 - 的重载double.Parse
都不适合 type 的单个参数double
。甚至不清楚您的意思是什么-解析通常是将一种类型(通常是字符串)转换为另一种类型(double
在这种情况下)。您的初始值已经是 a double
,那么您希望它做什么?
我的猜测是您实际上在某个地方有一个字符串,并且您正在尝试解析它 - 所以您需要更改您的参数,以便它使用该字符串而不是socialSecurityFee
变量。目前尚不清楚您是否需要两个类型double
的变量。
此外,如果这意味着表示货币金额(听起来像),您应该考虑使用decimal
而不是double
.
有四个重载Double.Parse
。其中只有一个接受单个参数。该参数的类型是 astring
但您正在尝试传递 a double
。这正是编译器错误消息告诉您的内容。您不能这样做,因为double
s 不能隐式转换为string
. 您不能使用未隐式转换为方法所需类型的参数调用方法。
但是你想做什么?socialSecurityFee
是 a double
,那你为什么要解析它呢?解析意味着分析 astring
以赋予其意义。
该方法double.Parse()
需要一个string
参数,并且您正在向它传递一个double
值。
由于您的原始值已经是双倍,您甚至不需要使用double.Parse()
double.Parse
期望string
作为参数,并且您试图用另一个double
值调用它。
我不太确定您为什么在double.Parse
这里使用,但要使其正常工作,请添加ToString()
调用:
double socialSecurityFee = 0;
double xsocialSecurityFee = double.Parse(socialSecurityFee.ToString());
或者只是分配值本身(因为它已经是 a double
,不是吗?):
double socialSecurityFee = 0;
double xsocialSecurityFee = socialSecurityFee ;
socialSecurityFee
已经是双倍了。double.Parse
期待一个字符串,艰难的。你不需要在这里解析任何东西。你想做什么?