Ruby 4.0 リファレンスマニュアル

instance method Float#<=>

self <=> other -> -1 | 0 | 1 | nil[permalink][rdoc][edit]

selfother と比較し、self のほうが大きい場合に 1、等しい場合に 0、小さい場合に -1 を返します。比較できない場合は nil を返します

返り値を覚えるには、<=>- に置き換えてみるとよいでしょう。x <=> yx - y は符号が一致します。

比較できる例
p 3.05 <=> 3.14     # => -1
p 1.732 <=> 1.414   # => 1
p 3.3 - 3.3 <=> 0.0 # => 0

# 正負の無限大も比較できる
p 3.14 <=> Float::INFINITY  # => -1
p 3.14 <=> -Float::INFINITY # => 1
p Float::INFINITY <=> -Float::INFINITY # => 1

# Complex オブジェクトでも虚部がゼロなら比較できる
p 3.14 <=> 3.1+0i # => 1
比較できない例
# NaN とは比較できない
p 3.14 <=> 0.0/0.0  # => nil

# 虚部がゼロでない複素数とは比較できない
p 3.14 <=> 1i # => nil

# 数値でないものは Float と比較できない
p 3.14 <=> "3.1" # => nil