如何在 smarty 中将 float 转换为 int
Posted
技术标签:
【中文标题】如何在 smarty 中将 float 转换为 int【英文标题】:How to convert float to int in smarty 【发布时间】:2011-07-11 16:19:13 【问题描述】:由于我是 smarty 的新手,我无法将浮点数转换为 int。 例如:12.234 => 12 如果您找到任何解决方案,请帮助我
【问题讨论】:
【参考方案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
【讨论】:
效果很好。更清洁的解决方案,似乎更高效。以上是关于如何在 smarty 中将 float 转换为 int的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中将 Floats 的 ContiguousArray 转换为字节数组?
如何在 JNIWrapper 中将 C++ Array<float,size> 转换为 jfloatArray?