0

我正在根据评论显示星级评分,使用如下条件:

- if page.page_reviews.average('rating') == 5
  %p Do something...

问题是……对于 1-5 的审查系统,并不是所有的平均值都等于整数。如何将每个平均值四舍五入到 Rails 中最接近的整数?

4

3 回答 3

2

使用 Ruby 的浮点数#round

如果没有参数,Float#round方法会将浮点数转换为最接近的整数。例如:

(2.5).round
#=> 3

avg = 3.2
avg.round
#=> 3
于 2013-10-18T02:44:36.920 回答
0

您可以使用

Math.floor(number + 0.5)

舍入最接近的整数值(4.7 舍入到 5)。如果您只想四舍五入到值的整数部分(例如 4.7 舍入到 4),则不要包括加法 0.5。

于 2013-10-18T04:16:42.440 回答
0

干得好:

2.0.0-p247 :002 > (1.2).ceil
 => 2
2.0.0-p247 :003 > (1.2).floor
 => 1
2.0.0-p247 :004 > (1.2).round
 => 1
2.0.0-p247 :005 > (1.8).round
 => 2
于 2013-10-18T02:43:30.673 回答