-2

使用这种代码

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

我收到这种错误

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

我的代码有什么问题?

4

5 回答 5

4

我的代码有什么问题?

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

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

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

于 2013-06-30T14:48:09.583 回答
0

有四个重载Double.Parse。其中只有一个接受单个参数。该参数的类型是 astring但您正在尝试传递 a double。这正是编译器错误消息告诉您的内容。您不能这样做,因为doubles 不能隐式转换为string. 您不能使用未隐式转换为方法所需类型的参数调用方法。

但是你想做什么?socialSecurityFee是 a double,那你为什么要解析它呢?解析意味着分析 astring以赋予其意义。

于 2013-06-30T14:48:16.227 回答
0

该方法double.Parse()需要一个string参数,并且您正在向它传递一个double值。

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

于 2013-06-30T14:48:20.740 回答
0

double.Parse期望string作为参数,并且您试图用另一个double值调用它。

我不太确定您为什么在double.Parse这里使用,但要使其正常工作,请添加ToString()调用:

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

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

double socialSecurityFee = 0;
double xsocialSecurityFee = socialSecurityFee ;
于 2013-06-30T14:48:33.413 回答
0

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

于 2013-06-30T14:48:35.117 回答