将百分比添加到 Smarty 2 模板中的变量值

Add on a percentage to a variable value in Smarty 2 template

我已经在我的 Smarty 2 模板中分配了一个变量。

{assign var="real_count" value="{$store_summary|@count}"}
{$real_count = settype ($real_count, 'integer')}

我的目标是将 $real_count 的价值增加 65%。对于我正在处理的数据,我的 $real_count 为 3,因此计算值应为 4.95 (3 + 1.95)。

我正在尝试使用 math 标签,但显然我遗漏了一些东西。

{math equation="x * y" x=$real_count y=0.65 format="%.2f"}

如果你真的想在Smarty模板中这样做,你可以这样解决(稍微简化):

{assign var="real_count" value="3"}
{math equation="x + (x * y)" x=$real_count y=0.65 format="%.2f"}

但是,我通常建议不要在模板中做太多数学和其他逻辑。在大多数用例中,最好在应用程序中进行数学计算,然后在模板中显示结果。就连 Smarty manual 也同意我的看法:

math is an expensive function in performance due to its use of the php eval() function. Doing the math in PHP is much more efficient, so whenever possible do the math calculations in the script and assign() the results to the template. Definitely avoid repetitive math function calls, eg within section loops.