rails中ruby大小数的最大数量是多少?

时间:2013-06-30 17:15:14

标签: ruby-on-rails bigdecimal records

我的RoR目前正在为Bigdecimal记录提供一些问题。

我的代码是用以下内容更新某些属性:

 BigDecimal.new((income*scale).to_s)

例如,我扫描了一个表单,其值为

 11210000000.0

当我打印bigdecimal时,它看起来像:

 #<BigDecimal:91e2284,'0.1121E11',18(27)>

当我查看mySQL数据库中的记录时,记录显示为

  Income: 9999999999

所有收入低于100亿的记录都没有这个问题。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

我认为(因为我在文档中找不到它,但我知道Integer就是这种情况)BigDecimal在Ruby中没有MAX值。不幸的是,所有数据库系统都有这些限制,因此您可能希望将大数字存储为数据库中的字符串。

答案 1 :(得分:1)

在终端写道:

 rails g migration change_income_format_in_my_table

然后将迁移文件设置为:

class ChangeIncomeFormatInMyTable < ActiveRecord::Migration
 def up
change_table :forms do |t|
  t.change :income, :decimal, :precision => 16, :scale => 2
end
 end

 def down
    change_table :forms do |t|
     t.change :income, :decimal
   end
 end
  end

然后键入

rake db:migrate

感谢house9