Numeric#floorとNumeric#truncateの違い

floorは自身以下で最大の整数を返し、truncateは自身から0に近づくうち、最も近い整数を返します。
正の値では結果は同じですが、負の値で結果が異なります。

C:\>irb
irb(main):001:0> 1.2.floor
=> 1
irb(main):002:0> 1.2.truncate
=> 1
irb(main):003:0> -1.2.floor
=> -2
irb(main):004:0> -1.2.truncate
=> -1

公式リファレンス

Numeric#truncate
Numeric#floor