-2

文字列を int に変換する方法は? convert.ToInt32 が使用されていることは知っていますが、失敗します。エラーは、入力文字列が適切な形式ではありません。文字列 s1 = "12.00"

4

4 に答える 4

6

小数点記号は常にドット ( .) であるという仮定が気に入っています。InvariantCultureドットを小数点記号として明示的に指定する NumberFormat を含む を使用することをお勧めします。

Convert.ToInt32(Convert.ToDouble("12.00", CultureInfo.InvariantCulture));

明確にするために:世界の半分はドットを使用し、残りの半分はカンマを使用します。これをオランダ文化の PC で実行し、CultureInfo を指定しないと、システムの既定値 (コンマ) が使用され1200、ドットを無視して が返されます。

問題に直接影響するわけではありませんが、いくら強調してもしすぎることはありません。

于 2012-05-22T11:30:07.040 に答える
4

エラーは文字列が"12.00"

最初に文字列をintよりもdoubleに変換します

int a = Convert.ToInt32(Convert.ToDouble("12.00"));

また

整数部分だけが必要な場合

string s= "12.00";
string[] words = s.Split('.');
int a = Convert.ToInt32(words[0]);

SO で既に回答されたスレッドも確認してください: C# Convert String Decimal to Int

于 2012-05-22T11:25:10.847 に答える
3

「12.00」は整数ではなく 10 進数です。整数には小数部分がありません。Convert.ToDoubleorを使用して浮動小数点数を取得するか、.を呼び出す前に文字列の小数部分 ( およびそれに続くもの) を切り捨てConvert.ToInt32ます。

于 2012-05-22T11:23:45.450 に答える
1

文字列 "12.00" は double/decimal 値です。Double.Parse() または Double.TryParse() または Convert.ToDouble() を使用します。

于 2012-05-22T11:24:41.443 に答える