Округление переменной с помощью Shopify Liquid

#css #math #rounding #shopify #liquid

#css #математика #округление #shopify #жидкость

Вопрос:

Я хочу присвоить фиктивной переменной математическое значение, чтобы затем я мог использовать потолок.

Мой текущий код:

 {% if variant.compare_at_price > variant.price %} 
    SAVE {{ variant.compare_at_price | minus:variant.price | times:100 | divided_by:variant.compare_at_price }}%
{% endif %}
  

Результат — ЭКОНОМИЯ 20% (например, но если это 19,99, это будет 19%, а не 20%)

Но я хочу вызвать:

 x= {{ variant.compare_at_price | minus:variant.price | times:100 | divided_by:variant.compare_at_price }}%
  

затем возьмите {{ x | ceil }}

Как мне назначить x ?

Комментарии:

1. В вашем названии вы имеете в виду Liquid , что нет CSS Liquid .

Ответ №1:

С помощью assign тега variable:

 {% assign x = variant.compare_at_price | minus:variant.price | times:100.0 | divided_by:variant.compare_at_price %}
{% assign x = x | ceil %}
SAVE {{x}}%
  

Комментарии:

1. Привет, спасибо за ваши ответы, но, похоже, я получаю полные цифры. Например, для товара стоимостью 149 долларов, который в настоящее время продается за 139 долларов, Shopify перечисляет его как 14900 и 13900. Итак, я получаю (14900-13900) * 100/14900 = 6. (Это должно быть 6,7). Итак, когда вы берете значение 6, вы получаете 6. Я думаю, что сначала мне нужно указать формат как плавающий?

2. divided_by Фильтр округляет до ближайшего целого числа. Вы можете использовать modulo для получения остатка.

3. Как бы я использовал modulo для получения десятичных дробей? Мне все равно нужно было бы использовать функцию divide, что приводит к той же проблеме.

4. Я нашел ответ … время использования: 100.0 … Я забыл поставить .0. Спасибо!

5. Круто, да, я добавил 100.0 к ответу.