-2

このようなコードで

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

この種のエラーが発生します

エラー CS1502: `double.Parse(string)' の最適なオーバーロードされたメソッド マッチには、無効な引数が含まれています (CS1502) (socialSecurityFee)

コードの何が問題になっていますか?

4

5 に答える 5

4

コードの何が問題になっていますか?

まさにコンパイラがあなたに言っていることです - double.Parsetype の単一の引数には適切なオーバーロードはありませんdouble。それが何を意味するのかさえ明確ではありません-解析は通常、あるタイプ(通常は文字列)から別のタイプ(doubleこの場合)に変換することです。あなたの初期値はすでにdoubleです。

私の推測では、実際にはどこかに文字列があり、それを解析しようとしているので、socialSecurityFee変数の代わりにその文字列を使用するように引数を変更する必要があります。タイプの変数が 2 つ必要であることは明らかではありませんdouble

さらに、これが通貨量を表すことを意図している場合 (そのように聞こえます)、decimal代わりに を使用することを検討する必要がありdoubleます。

于 2013-06-30T14:48:09.583 に答える
0

の 4 つのオーバーロードがありDouble.Parseます。それらのうちの 1 つだけが単一のパラメーターを受け入れます。そのパラメータの型は astringですが、 を渡そうとしていますdouble。それはまさにコンパイラのエラー メッセージが伝えていることです。doubles は暗黙的に に変換できないため、これを行うことはできませんstring。メソッドが期待する型に暗黙的に変換されないパラメーターを使用してメソッドを呼び出すことはできません。

しかし、あなたは何をしようとしていますか?socialSecurityFeeであるのにdouble、なぜ解析しようとしているのですか? 解析とは、a を分析しstringて意味を与えることです。

于 2013-06-30T14:48:16.227 に答える
0

メソッドは引数をdouble.Parse()期待しstringており、値を渡していdoubleます。

元の値はすでに 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());

または単に値自体を割り当てるだけです (それはすでにdoubleですよね?):

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

socialSecurityFeeすでにダブルです。double.Parseタフな文字列を期待します。ここでは何も解析する必要はありません。あなたは何をしようとしているのですか?

于 2013-06-30T14:48:35.117 に答える