2010-12-20 6 views
12

Was zwischen Char.IsDigit() vs Char.IsNumber()Char.IsDigit() vs Char.IsNumber(), was ist der Unterschied?

+0

Von MSDN ist der Unterschied:. * "[' IsDigit'] bestimmt, ob ein 'Char' eine Radix-10 Ziffer Dies steht im Gegensatz' IsNumber', das anzeigt, ob ein bestimmt ' Zeichen "" ist eine beliebige numerische Unicode-Kategorie. Zahlen enthalten Zeichen wie Brüche, tiefgestellte Zeichen, hochgestellte Zeichen, römische Ziffern, Währungszähler, eingekreiste Zahlen und skriptspezifische Ziffern. "* Http://msdn.microsoft.com/en-us /library/7f0ddtxh.aspx – LukeH

+3

Wenn 'MSDN' klar war' StackOverFlow' war nicht so populär – Xaqron

Antwort

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

Was ist mit ³ ("hochgestellt drei")? Ich bin einmal auf einen Fehler in einer anderen Sprache gestoßen, wo IsDigit die drei hochgestellten Ziffern als Ziffern erkannte, was mir eine kleine Welt des Schmerzes bescherte (hauptsächlich weil ihr Wert - '0'' über 130 war und nicht irgendwo zwischen 0 und 9). – configurator

+2

Versuchte die hochgestellte 3 in LINQPad und es gibt false für IsDigit zurück. Aber hier ist eine Liste von Zeichen, die wahr zurückgeben sollten: http://www.fileformat.info/info/unicode/category/Nd/list.htm –

Verwandte Themen