我的RoR目前给我的Bigdecimal记录带来了一些问题。
我的代码是使用以下命令更新某些属性:
BigDecimal.new((income*scale).to_s)例如,我扫描了一个表单,它的值是
11210000000.0当我打印大小数时,它看起来像这样:
#<BigDecimal:91e2284,'0.1121E11',18(27)>当我在mySQL db中查找记录时,该记录显示为
Income: 9999999999所有收入低于100亿的记录都没有这个问题。
怎么一回事?
发布于 2013-07-01 11:22:22
在终端中写道:
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
发布于 2013-07-01 04:04:40
我认为(因为我在文档中找不到它,但我知道整数是这样的) BigDecimal在Ruby语言中没有最大值。不幸的是,所有数据库系统都有这些限制,因此您可能希望在数据库中以字符串形式存储较大的数字。
https://stackoverflow.com/questions/17392862
复制相似问题