液体没有聚集在细胞上

时间:2019-04-29 20:18:57

标签: rounding liquid 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。液体似乎会自动舍入。

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

谢谢

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

1 个答案:

答案 0 :(得分:2)

除以整数时,结果将为整数。如果要获取浮点数,请除以浮点数(请参见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