smarty中的数字格式

Posted

技术标签:

【中文标题】smarty中的数字格式【英文标题】:Number formats in smarty 【发布时间】:2012-07-12 09:13:33 【问题描述】:

如何在 smarty 中将我的价格 (200000 into 2 Lacs, 20000000 => 2 Crore) 显示为十进制值

我将价格值存储为

200000
350000
2000000
20000000

现在在 mysql 中我需要将此值显示为

2/2.00 Lacs 
3.5 lacs 
20/20.00 lacs
2/2.00 crore

可能重复的问题是here

谢谢。

【问题讨论】:

【参考方案1】:

我同意 Rob Agar。

我不确定你的数字,但是像这样的自定义修饰符是一个起点

function smarty_modifier_indian_currency($price)

    if($price>100000)
    
        $lacs=$price/100000;
        // lacs

        if($lacs<100) return $lacs.' lacs';

        $crore=floor($lacs/100);
        $lacs=$lacs-($crore*100);

        if($lacs==0) return $crore.' crore';
        return $crore.'/'.$lacs.' crore';

    
    return $price;

【讨论】:

【参考方案2】:

棘手的一点是处理印度货币格式,这在this question 中有介绍。之后,添加custom Smarty modifier 以允许您在模板中编写类似的内容很简单:

$amount|format_indian_currency

【讨论】:

以上是关于smarty中的数字格式的主要内容,如果未能解决你的问题,请参考以下文章

数字格式在 Smarty 的 foreach 中不起作用

smarty中的串联

Smarty:取消设置模板中的数组索引

Smarty:评估存储在 PHP 变量中的模板

8. Smarty3:模版中的内置函数

使用 smarty 获取数组中的值计数