2011-02-18 19 views
7

これらの演算子は、D 2.0で何をしますか:D 2.0でこれらの演算子は何をしますか:<> =!<> =! <= !> =

  • <>=
  • !<>=
  • !<=
  • !>=
+0

あなたのタイトルには質問全体が含まれている場合、あなたの質問に少し詳しく説明したいとお考えです.- –

+0

@Joachim:Haha okay。タイトルを繰り返して質問に何かを追加できたような気がしませんでしたが、とにかく編集に感謝します。 :) – Mehrdad

+1

あなたは可読性を追加できました。タイトルフォントでは、どの文字が一緒に属していてオペレータを形成しているかを見るのは難しいです。 –

答えて

7

彼らはのような順序のない可能性の値に使用されています浮動小数点数と複素数のNaN。 1 <>= NaNはfalseと評価されますが、どちらの数値もNaNでない限り、x <>= yは任意の数の対について真と評価されます。あなたが言及している他の演算子は、mutatis mutandisと同じです。

+2

ドキュメントへのリンク:http://www.digitalmars.com/d/2.0/expression.html#floating_point_comparisons – stephan

+0

ありがとう! :D @stephan:リンクありがとう!私はどこでも見ていたと思っていました(字句ページ、演算子のオーバーロードページなど)が、見逃してしまったようです。 – Mehrdad

2

長い答えは:(一方がNaNである場合)

浮動小数点を扱う2つの値はA<Bの一つ、A=BA>B又は順不同として比較します。

演算子は、the truth tableのすべての興味深い(定数ではない)行を表します。 !を持たないかぎり、演算子が対応するcharを持つそれぞれのケースについて真であると解釈することができます。この場合、値は反転されます。

1

これらは、==,<>=のようなDの比較演算子です。 Dでは、値nan(数値ではない)が考慮されます。 2つの浮動小数点数は、より小さいか、等しいか大きいかを比較できるだけでなく、比較対象のうちの1つがnanである場合、順序付けもされない。

したがって、<>=は、それ以下、等しい、またはそれ以上を意味します。換言すれば、<>=は注文されたことを意味する。

!で始まる比較演算子は、!を持たない比較演算子とまったく同じです。特に、比較対象の1つがnanであれば、すべてがtrueと評価されます。

ここでは、すべての比較演算子の完全なリストはDである:

  • ==
  • !=
  • >
  • >=
  • <
  • <=
  • !<>=
  • <>
  • <>=
  • !<=
  • !<
  • !>=
  • !>
  • !<>

このリストはthe D documentation.にあります。これらのすべての演算子の動作がここで説明されています。

関連する問題