【问题标题】:How to convert float to int in smarty如何在 smarty 中将 float 转换为 int
【发布时间】:2011-07-11 16:19:13
【问题描述】:

由于我是 smarty 的新手,我无法将浮点数转换为 int。 例如:12.234 => 12 如果您找到任何解决方案,请帮助我

【问题讨论】:

    标签: php smarty


    【解决方案1】:

    为什么不在将其附加到视图之前对其进行投射。没有理由传递需要进一步处理的视图数据。

    $int = (int) $float;
    
    $smarty->assign(array(
       'number' = $int
    ));
    

    如果你真的必须使用 Smarty 获取浮点数的整数部分,试试这个...

    {$number|string_format:"%d"}
    

    这就像 PHP 的 printf()

    【讨论】:

    • 我需要在 .tpl(template) 中转换吗?
    • @sandeep:不,这是你分配变量本身之前;在您的.php 文件中。
    • 是的,我明白了。但我需要更改 tpl 文件。我无权访问 .php 文件。
    • 传递需要处理的数据有一个完美的理由:如果您在模块化系统(例如博客或商店)上工作,您可能希望在模板更改,无需编写模块,覆盖控制器并关心未来的更新。无论如何,+1 用于命名这两种解决方案。 :)
    【解决方案2】:

    这个可以试试看

    (string)((int)$float)
    

    也请检查此链接

    http://www.smarty.net/forums/viewtopic.php?p=61912

    【讨论】:

    • 为什么要投到string
    【解决方案3】:

    这是可以做到的:

    {$converted = settype($myVar, 'integer')}
    

    您需要指定 settype 的返回值,bool,否则该值将显示在 UI 中。

    【讨论】:

      【解决方案4】:

      你也应该可以这样做:{$variable|intval}

      【讨论】:

      • 效果很好。更清洁的解决方案,似乎更高效。
      猜你喜欢
      • 1970-01-01
      • 2012-11-11
      • 2021-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2014-07-24
      • 2017-09-04
      相关资源
      最近更新 更多