文字列を int に変換する方法は? convert.ToInt32 が使用されていることは知っていますが、失敗します。エラーは、入力文字列が適切な形式ではありません。文字列 s1 = "12.00"
4 に答える
小数点記号は常にドット ( .
) であるという仮定が気に入っています。InvariantCulture
ドットを小数点記号として明示的に指定する NumberFormat を含む を使用することをお勧めします。
Convert.ToInt32(Convert.ToDouble("12.00", CultureInfo.InvariantCulture));
明確にするために:世界の半分はドットを使用し、残りの半分はカンマを使用します。これをオランダ文化の PC で実行し、CultureInfo を指定しないと、システムの既定値 (コンマ) が使用され1200
、ドットを無視して が返されます。
問題に直接影響するわけではありませんが、いくら強調してもしすぎることはありません。
エラーは文字列が"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
「12.00」は整数ではなく 10 進数です。整数には小数部分がありません。Convert.ToDouble
orを使用して浮動小数点数を取得するか、.
を呼び出す前に文字列の小数部分 ( およびそれに続くもの) を切り捨てConvert.ToInt32
ます。
文字列 "12.00" は double/decimal 値です。Double.Parse() または Double.TryParse() または Convert.ToDouble() を使用します。