2010-12-20 2 views
12

Quelle est la différence entre Char.IsDigit() vs Char.IsNumber()Char.IsDigit() vs Char.IsNumber(), quelle est la différence?

+0

De MSDN:. * "[' IsDigit'] détermine si un 'Char' est un radix-10 chiffres Cela contraste avec' IsNumber', qui détermine si un ' Char est de n'importe quelle catégorie Unicode numérique Les nombres comprennent des caractères tels que des fractions, des indices, des exposants, des chiffres romains, des numérateurs de devise, des nombres encerclés et des chiffres spécifiques au script. "* Http://msdn.microsoft.com/fr-fr /library/7f0ddtxh.aspx – LukeH

+3

Si 'MSDN' était clair,' StackOverFlow' n'était pas si populaire – Xaqron

Répondre

28
// 1/2 symbol 
Char.IsNumber('½'); // true 
Char.IsDigit('½'); // false 

// Unicode character for Roman numeral 5 (V) 
Char.IsNumber('\x2165'); // true 
Char.IsDigit('\x2165'); // false 
+0

Qu'en est-il de ³ ("superscript three")? J'ai déjà rencontré un bug dans une autre langue où IsDigit a reconnu les trois exposants comme des chiffres, me causant un petit monde de douleur (principalement parce que leur 'valeur -' 0 'était supérieure à 130 et pas entre 0 et 9 comme prévu) – configurator

+2

Essayé l'exposant 3 dans LINQPad et il renvoie false pour IsDigit. Mais voici une liste de caractères qui devraient retourner vrai: http://www.fileformat.info/info/unicode/category/Nd/list.htm –

Questions connexes