【问题标题】:Rails - decimal not displaying in viewRails - 小数点未显示在视图中
【发布时间】:2014-10-06 16:51:58
【问题描述】:

我有以下对象 -

Reckoner Load (0.2ms)  SELECT  "reckoners".* FROM "reckoners" WHERE
  "reckoners"."id" = ? LIMIT 1  [["id", 2]]
=> #<Reckoner id: 2, group: "test FTEProrated", description: "try new calc", 
     leave: 28, abscence: #<BigDecimal:7fab221cf438,'0.1E2',9(27)>,
     created_at: "2014-10-06 15:56:10", updated_at: "2014-10-06 16:14:32",
     FTEProRated: #<BigDecimal:7fab221ca1e0,'0.0',9(27)>>

如果我的计算正确,FTEProRated 应该是 0.8 左右 - 但它显示为 0.0。我哪里错了?

在保存对象之前在控制器中进行计算 -

更新中 -

pro_rate_this @reckoner

...

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)/260
end

当我更改 calc 以测试正在保存的内容时,一切似乎都很好 - 例如,这个 -

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)
end

当 reckoner.leave == 28 时给出 232 的值。只有当值变为

【问题讨论】:

  • 你是怎么显示的?
  • 就像&lt;%= @reckoner.FTEProRated %&gt;在一个视图中
  • FTEProRated 是您数据库中的列吗?如果是这样,列类型是什么?如果没有,请向我们展示计算/分配它的代码。
  • 计算在哪里?
  • 谢谢大家 - 已按照建议更新了问题。嗨@lurker - 是的,我也看到了,但是纸上的计算结果是 0.8

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

数学...如果你希望你的答案是浮点数,请确保你除以浮点数。

def pro_rate_this(reckoner)
  reckoner.FTEProRated = (260-reckoner.leave)/260.0
end

看到那里的分母了吗?只需将 .0 添加到 260 并报告回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多