使用这种代码
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。这正是编译器错误消息告诉您的内容。您不能这样做,因为doubles 不能隐式转换为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期待一个字符串,艰难的。你不需要在这里解析任何东西。你想做什么?