如何将数字转换为字符串?

时间:2010-06-28 08:58:05

标签: smarty

我需要测试两个变量是否相等。但一个是字符串格式,另一个是数字。

所以,我尝试在文本中转换变量,但没有成功。

有你的想法吗?

3 个答案:

答案 0 :(得分:2)

尝试使用{$ number | string_format:“%。2f”}将这两个数字转换为字符串并进行比较。 或{$ number | string_format:“%d”}如果是整数,而不是浮点数。

我没有看到smarty显式地将sting转换为整数的方法,所以你应该将两者都转换为字符串。

如果不起作用,请发布您的代码。也许问题在于另一条线。

答案 1 :(得分:0)

我有同样的问题,因为php自动转换数组键(字符串)到整数,基于它们看起来像整数(这实际上是一个记录的“功能”!)然后搞乱我在Smarty中的比较。直截了当且非常糟糕的方法是:

{php}$this->assign('STR', strval($this->get_template_vars('NUM')));{/php}

如果您需要在代码中更频繁地使用它,请考虑编写自定义的Smarty {strval}。

答案 2 :(得分:0)

您可以使用settype将整数转换为字符串,然后比较它们......

$var1 = 10;
$var2 = "10";
{$converted = settype($var2, 'integer')}

OR

{$converted = settype($var1, 'string')}

这会给你相同类型的变种。拥有$ converted变量的唯一原因是因为如果未分配,则返回的bool将出现在页面上。