2016-09-15 4 views
2

Ich beantwortete diese question und ein Mann kommentierte im Thread, dass das '*' noch das '-' nicht MathSymbol sind. Wenn Sie diese C# ausführen zurückkehren beide falsch:Warum wird das * nicht als MathSymbol betrachtet?

char.IsSymbol('*'); //false 
char.IsSymbol('-'); //false 

Nach msdn:

Gültige Symbole Mitglieder der folgenden Kategorien sind in Unicode: MathSymbol, Currency, ModifierSymbol und OtherSymbol. Symbole in den Unicode-Standard sind eine lose gesetzt von Zeichen definiert, die Folgendes umfassen:

Ich habe diese snippet zu sehen, alle MathSymbols und ich fand heraus, dass der Stern noch das Minus-Symbol dort waren, offensichtlich.

 int ctr = 0; 
     UnicodeCategory category = UnicodeCategory.MathSymbol; 

     for (ushort codePoint = 0; codePoint < ushort.MaxValue; codePoint++) { 
     Char ch = Convert.ToChar(codePoint); 

     if (CharUnicodeInfo.GetUnicodeCategory(ch) == category) { 
      if (ctr % 5 == 0) 
       Console.WriteLine(); 
      Console.Write("{0} (U+{1:X4})  ", ch, codePoint); 
      ctr++; 
     } 
     } 
     Console.WriteLine(); 
     Console.WriteLine("\n{0} characters are in the {1:G} category", 
         ctr, category); 

Ich möchte auch wissen, ob es einen Grund gibt, warum diese 2 Symbole nicht als MathSymbols betrachtet werden?

+1

[Unicode Math Symbole sind hier aufgeführt] (http://www.fileformat.info/info/unicode/category/Sm/list.htm). Wenn nicht ausdrücklich angegeben (was nicht der Fall ist), liegen die normalen ASCII-Zeichen "*" und "-'" nicht in diesem Bereich. – user2864740

+2

Das ist nur ein mathematisches Symbol für einen Programmierer, nicht für einen Typografen. Leute, die Typ gesetzt haben, haben sehr hohe Standards :) –

+1

So ist es egal, was verschiedene Programmiersprachen für mathematische Operatoren verwenden (z. B. Sternchen für Multiplikation). "Mathe-Symbole" sind in diesem Zusammenhang genau so, wie Sie es bei Ihren High School Mathe-Hausaufgaben finden würden. –

Antwort

3

Unicode Math Symbols are listed here.

Sofern nicht explizit angegeben (was nicht der Fall ist), liegen die normalen ASCII-Zeichen '*' und '-' und '/' nicht in diesem Bereich, auch wenn sie üblicherweise in Text/Programmiersprachen für mathematische Operationen verwendet werden.

Im Gegensatz zum '+' Zeichen, das in der Kategorie "Symbol, Math" enthalten ist, haben diese anderen Zeichen mehr überlastete Verwendungen/Namen (z. B. Stern, Bindestrich, Solidus), was ihre Einbeziehung als verallgemeinert mathematisch zweifelhaft macht : Ein Unicode-Zeichen gehört zu einer einzelnen Kategorie.

2

Weder Sternchen noch Bindestrich sind mathematische Symbole, ungeachtet der Tatsache, dass wir sie normalerweise verwenden und ihre Bedeutung verstehen.

Unicode mathematische Symbole sind Dinge wie × (&#215; als Dezimalzahl Escape)

2

Die primäre Verwendung von * als Interpunktion ist (ein asterisk) und - als Bindestrich oder Bindestrich verwendet.

Verwandte Themen