将百分比添加到 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.
我已经在我的 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 phpeval()
function. Doing the math in PHP is much more efficient, so whenever possible do the math calculations in the script andassign()
the results to the template. Definitely avoid repetitivemath
function calls, eg withinsection
loops.