C#:检查存储在字符串对象中的值是否为十进制

时间:2009-11-13 17:45:17

标签: c# decimal

在C#中,我如何检查存储在字符串对象中的值(例如:字符串strOrderId =“435242A”)是否为小数?

9 个答案:

答案 0 :(得分:28)

使用Decimal.TryParse功能。

decimal value;
if(Decimal.TryParse(strOrderId, out value))
  // It's a decimal
else
  // No it's not.

答案 1 :(得分:25)

您可以使用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);

答案 2 :(得分:4)

decimal decValue;

if (decimal.TryParse(strOrderID, out decValue)
{ / *this is a decimal */ }
else
{ /* not a decimal */}

答案 3 :(得分:3)

您可以尝试解析它:

string value = "123";
decimal result;
if (decimal.TryParse(value, out result))
{
    // the value was decimal
    Console.WriteLine(result);
}

答案 4 :(得分:1)

这个简单的代码将允许整数或十进制值并拒绝字母和符号。

      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
           }

        }

答案 5 :(得分:1)

如果我们不想使用额外的变量。

string strOrderId = "435242A";

bool isDecimal = isDecimal(strOrderId);


public bool isDecimal(string value) {

  try {
    Decimal.Parse(value);
    return true;
  } catch {
    return false;
  }
}

答案 6 :(得分:1)

利用丢弃符号_并使用

if (decimal.TryParse(stringValue, out _))
{
   // valid decimal 
}
else
{
   // not decimal
}

答案 7 :(得分:0)

在TryParse中声明十进制输出值

if(Decimal.TryParse(stringValue,out decimal dec))
{
    // ....
}

答案 8 :(得分:0)

想想简单。

decimal decNumber = decimal.Parse("9.99");
if (decNumber % 1 > 0)
{
   //decimal area
}
else
{
   //int area
}