私のコードはこのようなものです
string asd = "24000.0000";
int num2;
if (int.TryParse(asd, out num2))
{
// It was assigned.
}
コードの実行が if ケースに入らないようになりました。これは、try parse が機能していないことを意味します。コードの何が問題なのか教えてください。
注: 最初のステップでは、値 24000.0000 が意図的に string として割り当てられます。
小数を許可するパラメーターを指定できるようにする2 番目のTryParseオーバーロードを使用します。NumberStyle
int val =0;
var parsed = int.TryParse("24000.0000",
NumberStyles.Number,
CultureInfo.CurrentCulture.NumberFormat,
out val);
の場合、int小数点以下は使用できません。
編集:
string asd = "24000.000";
int dotPos = asd.LastIndexOf('.');
if (dotPos > -1) {
asd = asd.Substring(0, dotPos);
}
int num2;
if (int.TryParse(asd, out num2))
{
// It was assigned.
}
編集:
他の回答で指摘されているように、変換を処理するより良い方法があります。
この方法については、MSDN ドキュメントのコメント セクションを参照してください。
http://msdn.microsoft.com/en-us/library/f02979c7.aspx
文字列には、空白、記号、および数字のみを含めることができます。
これはあなたのために働くはずです:
string asd = "24000.0000";
int num2;
decimal tmpNum;
if (decimal.TryParse(asd, out tmpNum))
{
num2 = (int)tmpNum;
// It was assigned.
}
を解析するように要求しましたが、またはintが与えられました。数値を解析できないため、false が返され、ゼロに設定されます。doublefloatnum2