c#では、文字列オブジェクト(例:文字列strOrderId = "435242A")内に格納されている値が10進数であるかどうかをどのように確認できますか?
Decimal.TryParse 関数を使用します。
decimal value;
if(Decimal.TryParse(strOrderId, out value))
// It's a decimal
else
// No it's not.
Decimal.TryParse を使用して、値がDecimalタイプに変換できるかどうかを確認できます。結果をDouble型の変数に割り当てる場合は、代わりに Double.TryParse を使用することもできます。
MSDNの例:
string value = "1,643.57";
decimal number;
if (Decimal.TryParse(value, out number))
Console.WriteLine(number);
else
Console.WriteLine("Unable to parse '{0}'.", value);
decimal decValue;
if (decimal.TryParse(strOrderID, out decValue)
{ / *this is a decimal */ }
else
{ /* not a decimal */}
あなたはそれを解析してみるかもしれません:
string value = "123";
decimal result;
if (decimal.TryParse(value, out result))
{
// the value was decimal
Console.WriteLine(result);
}
この単純なコードは、整数または10進数の値を許可し、アルファベットと記号を拒否します。
foreach (char ch in strOrderId)
{
if (!char.IsDigit(ch) && ch != '.')
{
MessageBox.Show("This is not a decimal \n");
return;
}
else
{
//this is a decimal value
}
}
追加の変数を使用したくない場合。
string strOrderId = "435242A";
bool isDecimal = isDecimal(strOrderId);
public bool isDecimal(string value) {
try {
Decimal.Parse(value);
return true;
} catch {
return false;
}
}
TryParseで10進数の値を宣言する
if(Decimal.TryParse(stringValue,out decimal dec))
{
// ....
}