1

这可能是一个容易回答的问题,但我有点难过,而且我研究 Smarty 的时间还不够长,无法弄清楚。

我需要以 3 位格式显示数字,即:

8   = 008
18  = 018
118 = 118

为了添加一些上下文,基本上我正在尝试编辑 Prestashop 模板(在此之前从未接触过 smarty)。目前价格显示为 1.223.014,我想将最后三位数字分开,以便我可以将其格式设置为与价格的第一部分不同。因此我可以做类似的事情

<span class="abc">1.223</span>.<span class="xyz">014</span>

不知道是否有更简单的方法可以做到这一点,但基本上我目前正在将当前价格除以 1000(以消除最后 3 位数字),现在我对如何获得最后 3 位数字感到困惑(如果最后三个数字很好用位数大于 99)

感谢您的帮助。

谢谢

4

1 回答 1

2

您的示例的解决方案 {"%03d"|sprintf:8}

如果您在任何情况下都想要最后 3 位数字,则可能的解决方案 {'1.223.014'|substr:-3}

html:

<span class="abc">{'1.223.014'|substr:0:-4}</span>.<span class="xyz">{'1.223.014'|substr:-3}</span>

注意:如果数字长度小于4,这将不起作用

如果你想检查数字内是否有点,你可以这样做

{if '1.223.014'|substr_count:'.' > 0}
..dots inside..
{else}
..no dots inside..
{/if}

用 smarty 3 测试。

于 2012-08-28T09:53:43.187 回答