Smarty:始终显示3位数字

时间:2012-08-28 09:08:41

标签: smarty prestashop

这可能是一个容易回答的问题,但我有点难过,而且我还没有足够长时间地研究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)

感谢您的帮助。

由于

1 个答案:

答案 0 :(得分: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进行测试。