【发布时间】:2010-10-18 12:03:39
【问题描述】:
$bal = (int)$balance;
echo is_int($bal);
$balance 来自 file_get_contents($webservice);
我正在使用 (int) 将字符串转换为整数。 is_int 返回 1 表示 true 作为验证。
因为 $bal 的值总是负数,所以我做了以下计算使其成为正数:
$bal = $bal * -1;
当我这样做时,即使 $bal 以前可能是 -150,该值也会变为 0。
编辑 1 var_dump ($balance) 正在返回: 字符串(110)“ -399.6000"
EDIT 2 我已经使用 XML Parser 将变量分配给数组 - 请参阅下面的答案。
【问题讨论】:
-
这不是答案,但为什么不使用
abs()而不是乘以-1。有一天$bal可能不会总是是负面的。 -
@Jason: 也看看评论 #1 ;-)
-
虽然你确实应该使用
abs,但提供的代码并没有错,如果$bal==-150&-1==-1,它不会给你0。更有可能是有一些垃圾在$balance(货币符号、HTML 标签、空格等)中,这会阻止它被转换为所需的 INT。如果无法识别数字,正常处理会将其强制转换为 0。 -
@baswoni:
string(110) " -399.6000"不会计算,如果您在浏览器中查看,请查看源代码,而不是网页,因为-399.6000有 远少于 110 个字符。