【发布时间】:2011-09-14 19:48:37
【问题描述】:
所以我正在使用 Ruby On Rails 创建一个时间跟踪应用程序,并将时间存储为代表小时数的数字。
由于任何超过 0.01(36 秒)小时的时间都无关紧要,因此我只需要 2 位小数。
我正在使用以浮点数作为列类型的 MySQL 数据库。虽然这在大多数情况下都有效,但我时不时地在计算和舍入浮点数时遇到错误。
我对我的选项进行了一些研究,发现很多人建议使用 BigDecimal。由于我使用了很多使用计算的自定义数据库查询,所以我想知道更改列类型会如何影响这一点。它将其存储为字符串或 yaml,还是 MySQL 原生支持?
或者在 Ruby/Rails 中是否有等效的方法来进行定点十进制运算。
我认为任何方法都需要大量重构,我怎样才能最大程度地避免这种情况?
感谢任何见解。
【问题讨论】:
标签: mysql ruby-on-rails ruby floating-accuracy fixed-point