Как я понимаю, плавающие поплавки Ruby (1.9.2) имеют точность 15 знаков после запятой. Поэтому я ожидал бы, что округление поплавка x до 15 знаков после запятой будет равно x. Для этого расчета дело обстоит иначе.
x = (0.33 * 10)
x == x.round(15) # => false
Кстати, округление до 16 знаков верно.
Можете ли вы мне это объяснить?