我有一个名为ExpenseRatio的rails模型。我正在尝试访问模型中的特定记录,并且其字段的值名为calculated_expense_ratio(这是数据库中的小数)。
xr = ExpenseRatio.find(xr_id)
@po = MyAPI.ViewPO(po_id)
items = Array.new
@po["PurchaseOrderLineItems"].each do |lip|
lip.each do |li|
if li["id"].to_i > 0
new_price = xr.calculated_expense_ratio * li["price"]
items.push([id: li["id"].to_i,iprice: li["price"], xrid: xr_id, price: new_price,xrv: xr.calculated_expense_ratio])
end
end
end
这是lib文件夹中外部模块中的所有代码。 xr.calculated_expense_ratio不会在记录中输出实际的十进制值,而是看起来像符号上的完整符号:
#<BigDecimal:7f9883d1cd38,'0.42E1',18(45)>
知道为什么会这样吗?
答案 0 :(得分:1)
这不是一个符号,它是一个BigDecimal
对象。我猜你正在使用MySQL作为你的数据库而你的列的类型是DECIMAL
。 BigDecimal
是类似于float
的ruby对象,但允许更高的精度。请参阅以下内容:
http://makandracards.com/makandra/1178-bigdecimal-arithmetic-in-ruby