这似乎是一个基本问题,我确信已在其他地方得到解答。但是,由于我无法找到答案,我希望有人可以提供帮助。
我有一个变量:$_POST['totalrevenue']
,它从PHP页面(home.php)通过ajax传递到另一个PHP页面(ajax.php)。
值为2,900,应该作为整数读取,但在ajax.php上读取为字符串。
做
settype($_POST['totalrevenue'], int)
将字符串转换为具有新值2
的整数。
在PHP中保留初始值(2,900)的同时将此字符串转换为整数的最佳方法是什么?
答案 0 :(得分:6)
你的问题是" 2,900"是不是一个数字 - 它是一个字符串。那个逗号毁掉了所有的魔法。
将逗号转换为点,现在(float)和floatval()或intval()将正确处理它:
$value = (float)str_replace(',', '.', $oldValue);
或者如果','是千位分隔符(我也不能告诉它),用空字符串替换它。 ' 2900'成为2900,这就是你所需要的:
$value = (int)str_replace(',', '', $oldValue);
(在重新阅读你的问题时,你是在后一种情况下。对于"浮点"字符串,上述情况仍然适用。
答案 1 :(得分:0)
尝试使用(int)或(float)在变量之前转换类型。
$var = (int)str_replace(',', '.', $prevVar); /* for float */
和
$var = (float)str_replace(',', '.', $prevVar); /* for int */