我有一个price字段/列(例如15.50美元),我想知道Rails的数据类型应该是string、decimal还是float?

推荐答案

这个参数总是有两个边——小数和整数.整数的支持者认为小数可能不准确(在进行转换时),BigDecimal实现中包含错误,有时甚至是分段错误.

在我自己的项目中,我还提取了整数,将它们包装在一个自定义容器中,将美分转换为"真实"金额并返回.起初它看起来不错,但过了一段时间,它的使用变得非常麻烦——在处理美分、格式化字符串等时跟踪.

然后我又回到了小数——一直都是相同的格式,如果需要的话,我可以很容易地将金额转换成美分,我从盒子里得到了不同的舍入算法.我对小数更满意.

为了解决小数不准确的问题——在谷歌上搜索时,你可能会注意到大多数错误都与将小数转换为浮点数有关:)

Ruby-on-rails相关问答推荐

错误正在被ViewComponent、Ruby on Rails中吞噬

SASS,Rails 7:找不到要导入的样式表

如何使用继承类 (STI) 获取 Ruby on Rails 类中基类的实例

active_storage.resolve_model_to_route的不同值代表什么意思?

Rails:has_many 通过不返回结果

组合 active_record 模型并按共享属性排序

Ruby Sinatra Web 服务在 localhost:4567 上运行,但不在 IP 上

ArgumentError:您需要使用 :if 提供至少一个验证

使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

判断 DateTime 值是今天、明天还是以后

从子类中的重载方法调用基类方法

rails 模型 has_many 本身

Ruby 元素是否存在于数组中

Rails:文件路径

指定要从 before_filter 中排除的控制器

关于在不适合任何地方的 Rails 应用程序中放置类的指南

使 rails 控制台输出更漂亮一点

Test::Unit Rails - 如何断言一个数字大于另一个?

如何设置 MiniTest?

如何检测rails是否在根url?