电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

【isnumber函数】ISNUMBER函数的用法实例 VIP免费

【isnumber函数】ISNUMBER函数的用法实例 _第1页
1/6
【isnumber函数】ISNUMBER函数的用法实例 _第2页
2/6
【isnumber函数】ISNUMBER函数的用法实例 _第3页
3/6
【isnumber函数】ISNUMBER函数的用法实例篇一:别误用IsDigit与IsNumber函数需要推断Char是否为数字,查看了下MSDN,觉察有三种方法:Char.IsDigit(aChar)指示指定字符串中位于指定位置处的字符是否属于十进制数字类别Char.IsNumber(aChar)指示指定字符串中位于指定位置的字符是否属于数字类别aChar=0aCharlt;=9推断aChar是否位于‘0’到‘9’之前等同于第一种用.NETReflector查看事实上现代码:1.{2.if(!IsLatin1(c))3.{4.returnCheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));5.}6.if(!IsAscii(c))7.{8.returnCheckNumber(GetLatin1UnicodeCategory(c));9.}10.return((c=0)(clt;=9));11.}1.{2.if(!IsLatin1(c))3.{4.return(CharUnicodeInfo.GetUnicodeCategory(c)==5.nicodeCategory.DecimalDigitNumber);6.}7.return((c=0)(clt;=9));8.}篇二:别误用IsDigit与IsNumber函数别误用IsDigit与IsNumber函数1、起因最近觉察程序中有一段操纵TextBox数字输入的代码,相信大家都不会太陌生,如下:voidint_KeyPress(objectsender,KeyPressEventArgse){constcharDelete=(char)8;if(!Char.IsDigit(e.KeyChar)e.KeyChar!=Delete){andled=true;}}乍一看,好像没有啥征询题,但是却出现了一个bug,可以输入全角的数字,如:0、1、2、3等。错误的根源确实是上面代码中用到的IsDigit函数,因此就有了下面的一番探究,让我们来看看IsDigit函数的真面目。2、IsDigit函数查阅MSDN,告知该函数是推断字符是Unicode的十进制数字的函数。在查看其源代码publicstaticboolIsDigit(charc){if(!IsLatin1(c))returnCharUnicodeInfo.GetUnicodeCategory(c)==UnicodeCategory.DecimalDigitNumber;returnc=0clt;=9;}第一行的IsLatin1函数是推断字符是0~255的函数,而全角的0、1、2、3等的Unicode编码不在这个范围,因此就执行了下面这句代码:CharUnicodeInfo.GetUnicodeCategory(c)==UnicodeCategory.DecimalDigitNumber;而关于Unicode的分类中,半角的1,2,3和全角的0、1、2、3等都被归为了DecimalDigitNumber,因此关于全角的数字,这个函数返回了true。还有一个函数IsNumber和IsDigit功能类似,我们是否可以用它来代替呢?看下面的分析3、IsNumber函数又是何物?先看看这个函数的定义publicstaticboolIsNumber(charc){if(!IsLatin1(c))returnCheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));if(!IsAscii(c))returnCheckNumber(GetLatin1UnicodeCategory(c));returnc=0clt;=9;}internalstaticboolCheckNumber(UnicodeCategoryuc){switch(uc){caseUnicodeCategory.DecimalDigitNumber:tterNumber:caseUnicodeCategory.OtherNumber:returntrue;}returnfalse;}和IsDigit函数相比有3点区别:3)多了一个IsAscii的推断(0~127)特别显然IsNumber的范围更广了。下面列举几种IsNumber认为是数字的字符UnicodeCategory.LetterNumber:Ⅰ、Ⅱ、ⅢUnicodeCategory.OtherNumber:①、②、③128~255中有哪些字符会被IsNumber认为是数字,有兴趣的可以本人去测试。测试的方法可以利用这个函数:System.Globalization.CharUnicodeInfo.GetUnicodeCategory(charc),返回的是一个UnicodeCategory类型,你可以看看是不是IsNumber的几个类型就明白了。4、结论搞明晰了上面这两个函数的内部实现,那么在推断是否是ASCII数字(0~9)的时候,我们就需要留意以下几点了。1)不能用IsDigit和IsNumber函数推断是否是ASCII数字,这两个函数都有可能把ASCII以外的某些字符当做是数字。2)尽量用这种方式推断:c=0clt;=9(因此也可以用正那么表达式)。3)数字推断的严格性,从严到松依次是:c=0clt;=9?IsDigit?IsNumber4)修正上面的bug函数作为完毕voidint_KeyPress(objectsender,KeyPressEventArgse){constcharDelete=(char)8;rlt;=9)e.KeyChar!=Delete){e.Handled=true;}}篇三:excel函数使用实例20170211Excel函数使用实例唱润刚1快捷输入ALT+178(M2),ALT+179(M3)Alt+10(代表excel中alt+enter)示成0.1)或整数位(0.9999999会显示成1)。在自动选择时,会按实际数据进展大小比照,比方,0.0999999,中选择...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

【isnumber函数】ISNUMBER函数的用法实例

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部