0

これは私のコードです。

string a="11.4";

int b,c;

b=2;

c= convert.toint32(a) * b

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

入力文字列は、正しい形式ではありませんでした

どうすれば「a」を変換できますか?

4

2 に答える 2

4

まあa、整数値ではありません-Convert.ToDouble()代わりに使用できます。可能性のある場合に解析エラーを防ぐには、double.TryParse()代わりに次を使用します。

string a = "11.4";
double d;

if (double.TryParse(a, out d))
{
    //d now contains the double value
}

編集:

コメントを考慮に入れると、もちろんカルチャ設定を指定することが常に最善です。double.TryParse()ここでは、次の結果になる文化に依存しない設定を使用した例を示します11.4

if (double.TryParse(a, NumberStyles.Number, CultureInfo.InvariantCulture, out d))
{
    //d now contains the double value
}
于 2012-01-26T23:51:21.723 に答える
1

一見すると、数値リテラル "11.4" は実際の "int" ではありません。ToDouble() など、他の変換形式を試してください。

参考までに、C#で次のコードを試しました。

        string a = "11.4";
        double num_a = Convert.ToDouble(a);
        int b = 2;
        double ans = num_a * b;
于 2012-01-26T23:51:55.743 に答える