#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
к ответу.