2012-10-26 194 views
-4

我与字符串值做到了这一点像65.34, 65,45, 34.45如何在C#中检查给定的字符串是否为Decimal?

一切都返回True ...

public void test() 
{ 
    string value = "65" 0r "65.0" 0r "1,234.54"; 
    decimal number; 

    if (Decimal.TryParse(value, out number)) 
     MessageBox.Show(value); 
    else 
     MessageBox.Show("Unable to parse '{0}'.", value); 
} 

这一切都返回它的一个小数..

  If I type "0.65" .. I need to show error and it i type "65" it has to be exectued. 
+4

的号码“如果我输入65 ..我要显示其整...如果我键入65.0然后,我有以显示错误“然而,你的问题是关于解析小数......我很困惑。 '65'和'65.0'是有效的十进制值。 –

+0

表决权的原因? – user1764824

+0

先生,如果我打字.65我必须显示错误。如果我打字24.23我不必显示错误..我怎么能这样做 – user1764824

回答

0

你有两个选择

1.使用Regex

2.使用下面的方法来找到小数

static decimal CountDigitsAfterDecimalPoint(decimal decimalNumber) 
     { 
      int[] bits = Decimal.GetBits(decimalNumber); 
      int exponent = bits[3] >> 16; 
      int result = exponent; 
      long lowDecimal = bits[0] | (bits[1] >> 8); 
      while ((lowDecimal % 10) == 0) 
      { 
       result--; 
       lowDecimal /= 10; 
      } 

      return result; 
     } 
相关问题