46
votes

I just read this related answer:

How can I convert a number to a string? - Shopify Design — Ecommerce University

To convert a string to a number just add 0 to the variable:

{% assign variablename = variablename | plus:0 %}

Not super elegant but it works!

Inelegant or not, the answer given there isn't working for me. What's the right way to do this?

Are the Liquid docs really missing such basic answers or am I just not finding the right place to look?

1

1 Answers

87
votes

Using assign with a math filter is correct. See this thread on GitHub, and this blog post.

Variables created through {% capture %} are strings. When using assign, either of these options should give you a number:

{% assign var1 = var1 | plus: 0 %}
{% assign var2 = var2 | times: 1 %}

If this doesn't work for you, can you post the relevant code?