我正在根据评论显示星级评分,使用如下条件:
- if page.page_reviews.average('rating') == 5
%p Do something...
问题是……对于 1-5 的审查系统,并不是所有的平均值都等于整数。如何将每个平均值四舍五入到 Rails 中最接近的整数?
我正在根据评论显示星级评分,使用如下条件:
- if page.page_reviews.average('rating') == 5
%p Do something...
问题是……对于 1-5 的审查系统,并不是所有的平均值都等于整数。如何将每个平均值四舍五入到 Rails 中最接近的整数?
如果没有参数,Float#round方法会将浮点数转换为最接近的整数。例如:
(2.5).round
#=> 3
avg = 3.2
avg.round
#=> 3
您可以使用
Math.floor(number + 0.5)
舍入最接近的整数值(4.7 舍入到 5)。如果您只想四舍五入到值的整数部分(例如 4.7 舍入到 4),则不要包括加法 0.5。
干得好:
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