36

Rust のすべての整数型はOrd全体の順序付けを重視して実装していますが、浮動小数点型は のみを実装してPartialOrdいます。これは、比較できない浮動小数点値が存在する可能性があることを意味します。浮動小数点数はたまたま完全に順序付けられた実数の近似値と見なすことができるため、これを理解するのは難しいようです。正の無限大と負の無限大を追加しても、実数の集合は完全に順序付けられたままになります。なぜ Rust でこの奇妙な選択が行われるのでしょうか?

この制限は、一般的な並べ替え/検索アルゴリズムが数値の部分的な順序付けのみを想定できることを意味します。IEEE 754 標準は、完全な順序付け述語を提供しているようです。

NaN はジェネリック コードでそれほど大きな問題になるのでしょうか?

4

2 に答える 2