2016-09-15 14 views
2

私はこのquestionに答えていましたが、1人の男がスレッドで「*」も「 - 」もMathSymbolではないとコメントしました。あなたはこのC#を実行した場合の両方がfalseを返す:*はなぜMathSymbolと見なされないのですか?

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

msdnによると:MathSymbol、CURRENCYSYMBOL、ModifierSymbol、および OtherSymbol:

有効なシンボルが UnicodeCategoryで以下のカテゴリーのメンバーです。 Unicode標準中の記号は、大まかに定義され、次のものがあり、文字の を設定します。

私はすべてのMathSymbolsを表示するには、このsnippetを行なったし、私は、アスタリスクもマイナス記号は明らかに、あったことが分かりました。

 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); 

なぜこの2つの記号がMathSymbolsと見なされないのか、理由があるかどうかは知りたいですか?

+1

[Unicode数学記号がここにリストされています](http://www.fileformat.info/info/unicode/category/Sm/list.htm)。明示的に記載されていない限り(それはそうではありません)、通常のASCII文字「*」と「 - 」はこの範囲にありません。 – user2864740

+2

これは、プログラマーにとっての数学記号に過ぎず、タイポグラフィーには意味がありません。型を設定する人々は非常に高い基準を持っています:) –

+1

これは、さまざまなプログラミング言語が数学演算子(例えば、乗算のためのアスタリスク)に使用するものではありません。この文脈での "数学記号"は、あなたの高校の数学宿題で見つけられるようなものです。 –

答えて

3

Unicode Math Symbols are listed here

通常のASCII文字「*」と「 - 」と「/」は、数値演算を表すテキスト/プログラミング言語で従来使用されていたとしても、この範囲にはありません。

"Symbol、Math"カテゴリに含まれている '+'文字とは異なり、これらの他の文字は、一般的な数学的な疑わしいものとして包含されるような使用法/名前(例:アスタリスク、ダッシュハイフン、 :Unicode文字は、単一のカテゴリに属します。

2

アスタリスクもハイフンも、通常はそれらを使用してその意味を理解しているにもかかわらず、数学記号ではありません。

Unicodeの数学記号は*の主な用途は、ダッシュやハイフンとして使用される句読点(asterisk)と-ようです(小数点以下のエスケープなど&#215;×

2

のようなものです。

関連する問題