Char.IsDigit与Char.IsNumber的区别

Posted micro-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Char.IsDigit与Char.IsNumber的区别相关的知识,希望对你有一定的参考价值。

需要判断Char是否为数字,查看了下MSDN,发现有三种方法:

Char.IsDigit (aChar)              指示指定字符串中位于指定位置处的字符是否属于十进制数字类别

Char.IsNumber(aChar)        指示指定字符串中位于指定位置的字符是否属于数字类别

aChar>=‘0‘&&aChar<=‘9‘     判断aChar是否位于‘0’到‘9’之前  等同于第一种

 

用.NET Reflector 查看其实现代码:

public static bool IsNumber(char c)  
  1.   
  2.     if (!IsLatin1(c))  
  3.       
  4.         return CheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));  
  5.       
  6.     if (!IsAscii(c))  
  7.       
  8.         return CheckNumber(GetLatin1UnicodeCategory(c));  
  9.       
  10.     return ((c >= ‘0‘) && (c <= ‘9‘));  
  11.    

 

public static bool IsDigit(char c)  
  1.   
  2.     if (!IsLatin1(c))  
  3.       
  4.         return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber);  
  5.       
  6.     return ((c >= ‘0‘) && (c <= ‘9‘));  
  7.   

 

 

Char.IsNumber 多了一步检查ASCII码。。。

以上是关于Char.IsDigit与Char.IsNumber的区别的主要内容,如果未能解决你的问题,请参考以下文章

Difference between Char.IsDigit() and Char.IsNumber() in C#

C#如何将double转为char

文本过滤

仅使用数字格式化文本框

C#.NET常见问题(FAQ)-如何判断某个字符是否为汉字

使用文本框C#winform的KeyPress事件[复制]