Я написал это в консоли рельсов
(3352.3744333333334 == 3352.3744333333335) # правда
и результат был правдой
Примечания:
Я использую рубин 2.4.0 и рельсы 5.0.1
Я не эксперт в рубине, но лучший ответ: код распечатывает все числа, но сравнивает только первые 10 цифр, означающих 3352,374433 и 3352,374433, и дальше этого не идет. На мой взгляд, это было бы наиболее логичным объяснением.
Для точных вычислений используйте Рациональный, BigDecimal или Целое число. Например, при работе с деньгами используйте целые числа и сохраните количество центов вместо долларов (например, 10010 центов равны 100,10 доллара).