Ruby Datamapper存储以科学计数法显示的小数

时间:2010-09-26 18:00:05

标签: ruby sinatra haml datamapper

我有一个名为交付的模型:

property :id,           Serial
property :created_at,   DateTime
property :updated_at,   DateTime

property :price, BigDecimal,    :precision => 10, :scale => 2

交付有一个价格,在SQLite中查看时的价格是5.49,6.95,4.95

在输出中显示此信息(以haml编码)时,来自delivery.price的值显示为0.695E1,0.495E1等

知道为什么他们以这种格式展示,以及如何最好地正确显示它们。

感谢所有帮助!

1 个答案:

答案 0 :(得分:5)

转换为字符串(BigDecimal#to_s)需要格式参数:

>> n = BigDecimal.new('5.49')
=> #<BigDecimal:100502958,'0.549E1',18(18)>
>> n.to_s
=> "0.549E1"
>> n.to_s('F')
=> "5.49"