Показывать десятичную дробь только для нецелых чисел в Liquid

#liquid

#liquid

Вопрос:

Я думаю, это довольно просто, но не могу понять, возможно ли это. У меня есть число в шаблоне Liquid, которое должно содержать десятичную дробь только в том случае, если оно не является целым числом. К сожалению, в базе данных хранится значение с плавающей запятой (которое я не могу изменить), поэтому мой единственный вариант — попробовать сделать это в Liquid. По сути, если число равно 5.5 , я хочу, чтобы оно выводило это. Однако это число, 5.0 я хочу, чтобы оно выводилось 5 .

Я не вижу способа проверить, является ли число плавающим или нет. Идеи?

Ответ №1:

Этого можно было бы достичь с помощью некоторых фильтров liquid.

Сначала используется split для разбиения числа на десятичную точку, затем last для проверки, является ли последнее число 0 . Наконец, используйте remove , чтобы избавиться от .0 .

Например:

 {% assign result = 5.0 %}
{% assign splitResult = result | split: '.' %}
{% if splitResult.last == '0' %}
  {% assign newResult = result | remove: '.0'  %}
{% else %}
  {% assign newResult = result %}
{% endif %}

{{ newResult}}
  

В этом случае {{ newResult }} будет вывод 5 .

Надеюсь, это поможет!