液体不聚集在天花板上

Liquid not rounding up on ceil

我正在尝试让 Liquid 简单地四舍五入一个数字。这是我的代码:

{% assign loopCount = page.boxCount | plus:0  | divided_by:3 | %}
{{ loopCount | ceil }}

在本例中,loopCount = 4。我可以通过将其相加并显示结果来确认它是一个数字。

{% assign loopCount = page.boxCount | plus:0  | plus:3.5 %}
{{ loopCount }}

显示 7.5

但是,当我除以 3 时,应该是 1.333...我的显示器显示 1。Liquid 似乎自动向下舍入。

我需要它做的是四舍五入,所以我得到 2。我应该使用什么代码来获得预期的结果?

谢谢

编辑:我应该注意到我知道 ceil,但我不能使用它,除非我的数字实际上是小数。

当你除以一个整数时,结果将是一个整数。如果你想得到一个浮点数,除以一个浮点数(见"Controlling rounding"来自:https://shopify.github.io/liquid/filters/divided_by/):

require 'liquid'

source = <<-SRC
{% assign loopCount = page.boxCount | divided_by:3.0 %}
loopCount = {{ loopCount }}
loopCount | ceil = {{ loopCount | ceil }}
SRC

@template = Liquid::Template.parse(source)

puts @template.render('page' => {'boxCount' => 4 })

结果:

loopCount = 1.3333333333333333
loopCount | ceil = 2

如果你这样做:

require 'liquid'

source = <<-SRC
{% assign loopCount = page.boxCount | divided_by:3 %}
loopCount = {{ loopCount }}
loopCount | ceil = {{ loopCount | ceil }}
SRC

@template = Liquid::Template.parse(source)

puts @template.render('page' => {'boxCount' => 4 })

你得到:

loopCount = 1
loopCount | ceil = 1