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

标签 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 等

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

感谢所有帮助!

最佳答案

转换为字符串(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"

关于Ruby Datamapper 存储以科学记数法显示的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799102/

相关文章:

ruby-on-rails - 我是否正确使用了 rails 表单?

sinatra - Rack 应用程序和 Sinatra 应用程序之间有什么区别?

ruby - 为什么 Sinatra::Application 无法访问 config.ru 中定义的顶级方法?

ruby-on-rails - Haml::Engine.render 不会将 block 中的内容放入适当的包含元素中

python - 根据文件扩展名选择 Mako 预处理器?

ruby - 在运行 RSpec 测试时启动 irb 以进行调试?

arrays - 如何检查我的 Ruby 数组中的每个对象是否都具有 nil 属性?

ruby - 如何覆盖 Ruby/Sinatra 中的默认内部服务器错误以显示 erb 文件

ruby-on-rails - byebug 和网络控制台在 View 中不起作用

ruby - 为什么会.is_a?和 .class 给出相互矛盾的结果?