将JSON哈希值保存为十进制 - Ruby on Rails

时间:2016-10-21 23:17:00

标签: ruby-on-rails postgresql ruby-on-rails-5 bigdecimal

我正在尝试将通过JSON发送的金额保存到十进制列中的postgreSQL数据库中。

哈希看起来像这样:

{"status"=>"success", "data"=>{"network"=>"BTCTEST", "address"=>"2MstFNxtnp3pLLuXUK4Gra5dMcaz132d4dt", "available_balance"=>"0.01000000", "pending_received_balance"=>"0.00000000"}}

我保存的特定数据是:"available_balance"=>"0.01000000"

我遇到的问题是金额保存为:#<BigDecimal:74b44d8,'0.0',9(18)>

在我的控制器中提取并保存我的数量:

@deposit['data']['available_balance']
Payment.update(amount: @deposit['data']['available_balance'])

我需要添加或更改要保存为0.01000000的金额的其他内容吗?当列是字符串时,节省的金额很好,但是,我需要用金额做一些计算/数学。

任何评论或帮助都会受到很大的影响。

1 个答案:

答案 0 :(得分:0)

听起来你想将你的BigDecimal转换为浮点数,你可以用

来做
@deposit['data']['available_balance'].to_f

Beware the dangers of floating point arithmeticespecially when dealing with money