1

文字列を整数に変換する必要があります。私の文字列は、任意のタイプ (float/int/string/special character) にすることができます。

例えば:

If my string is "2.3", I need to convert to = 2
If my string is "anyCharacter", I need to convert to = 0
If my string is "2", I need to convert to = 2

私は次のことを試しました:

string a = "1.25";int b = Convert.ToInt32(a);    

エラーが発生しました:

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

どうすれば変換できますか?

4

8 に答える 8

1

これは役立つはずです:文字列をあたかもそれであるかのように扱いdouble、次にMath.Floor()それを最も近い整数に切り捨てます。

double theNum = 0;
string theString = "whatever"; // "2.3"; // "2";
if(double.TryParse(theString, out theNum) == false) theNum = 0; 
//finally, cut the decimal part
int finalNum = (int)Math.Floor(theNum);

注:初期化ifのため、それ自体は必要ない場合がありますがtheNum、この方法の方が読みやすくなります。

于 2013-02-28T07:52:10.127 に答える
1

浮動小数点数として解析し、その後整数に変換してみてください。

double num;
if (Double.TryParse(a, out num) {
  b = (int)num;
} else {
  b = 0;
}
于 2013-02-28T07:50:41.203 に答える
0

bool Int32.TryParse(string、out int)

ブール値の戻り値は、変換が成功したかどうかを示します。

于 2013-02-28T07:52:44.807 に答える
0

次のようなことを試してください:

public int ForceToInt(string input)
{
   int value; //Default is zero 
   int.TryParse(str, out value);

   return value;
}

これでうまくいきます。ただし、この方法を取ることはお勧めしません。入力をどこで取得しても制御することをお勧めします。

于 2013-02-28T07:54:35.607 に答える