これは私のコードです。
string a="11.4";
int b,c;
b=2;
c= convert.toint32(a) * b
このエラーが発生します。
入力文字列は、正しい形式ではありませんでした
どうすれば「a」を変換できますか?
まあ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
}
一見すると、数値リテラル "11.4" は実際の "int" ではありません。ToDouble() など、他の変換形式を試してください。
参考までに、C#で次のコードを試しました。
string a = "11.4";
double num_a = Convert.ToDouble(a);
int b = 2;
double ans = num_a * b;