2010-12-20 11 views
12

¿Cuál es la diferencia entre Char.IsDigit() vs Char.IsNumber()Char.IsDigit() vs Char.IsNumber(), ¿cuál es la diferencia?

+0

De MSDN:. * "[' IsDigit'] determina si un 'Char' es un radix-10 dígitos Esto contrasta con' IsNumber', que determina si un ' Char' pertenece a cualquier categoría numérica de Unicode. Los números incluyen caracteres como fracciones, subíndices, superíndices, números romanos, numeradores de monedas, números rodeados y dígitos específicos del script. "* Http://msdn.microsoft.com/es-es/ /library/7f0ddtxh.aspx – LukeH

+3

Si 'MSDN' era claro' StackOverFlow' no era tan popular – Xaqron

Respuesta

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é tal ³ ("superíndice tres")? Una vez me encontré con un error en otro idioma donde IsDigit reconoció los tres superíndices como dígitos, causándome un pequeño dolor (sobre todo porque su 'valor - '0'' era más de 130 y no estaba entre 0 y 9 como esperaba) – configurator

+2

Probé el superíndice 3 en LINQPad y devuelve falso para IsDigit. Pero aquí hay una lista de caracteres que deberían volverse ciertos: http://www.fileformat.info/info/unicode/category/Nd/list.htm –

Cuestiones relacionadas