比较bigdecimal输出

时间:2015-03-10 23:26:57

标签: ruby-on-rails ruby bigdecimal

SQL查询输出一个我希望为144.50的bigdecimal输出,实际值为#<BigDecimal:7fbe367ed118,'0.1445E3',18(18)>

我尝试以下方法来比较两者:

assert_equal BigDecimal('144.50'), actual_value

但是失败了:

--- expected
+++ actual
@@ -1 +1 @@
-#<BigDecimal:7fbe367ed938,'0.1445E3',18(18)>
+#<BigDecimal:7fbe367ed118,'0.1445E3',18(18)>

看起来失败是因为实际值和期望值是不同的对象。

这是比较Ruby中的大小数对象的正确方法吗?

1 个答案:

答案 0 :(得分:4)

你的断言是说“这个对象是否与其他对象相同”。您似乎想要比较值。

你可以这样做:

[4] pry(main)> BigDecimal('144.50') == 144.50                                             
=> true

这会使你的测试看起来像:

assert_equal 144.50, actual_value

其中actual_value来自数据库。