如何在 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"

这就像 phpprintf()

【讨论】:

我需要在 .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的主要内容,如果未能解决你的问题,请参考以下文章

在c ++中将4个字节转换为float的最快方法

如何在 Swift 中将 Floats 的 ContiguousArray 转换为字节数组?

如何在Python中将带分数的字符串转换为float

如何在 JNIWrapper 中将 C++ Array<float,size> 转换为 jfloatArray?

如何在 .NET 中将 Vector128<float> 转换为 Vector128<int>?

我收到消息:无法在分配中将 'float' 转换为 'float*' 并且我有一些逻辑错误