题
$bal = (int)$balance;
echo is_int($bal);
$ balance来自file_get_contents($ webService);
我正在使用(int)将字符串转换为整数。 IS_INT返回1作为true作为验证。
因为$ bal的价值总是为负的,所以我进行以下计算以使其成为正面:
$bal = $bal * -1;
当我这样做时,即使$ BAL之前可能为-150,该值也将变为0。
编辑1var_dump($ balance)正在返回:字符串(110)“ -399.6000”
编辑2 我已经使用XML解析器将变量分配给数组 - 请参见下面的答案。
解决方案 3
问题是我正在使用file_get_contents与Web服务的GET方法进行交互。
这是返回XML标头数据,我在分配给变量时忽略了这些数据。
为了清除XML以使我只有我想要的值,我使用了PHP XML_PARSER将File_get_contents存储在数组中,并允许我将数组值分配给整数。
$result = file_get_contents($base);
$p = xml_parser_create();
xml_parse_into_struct($p, $result, $vals, $index);
xml_parser_free($p);
$bal = $vals[0]['value'];
echo $bal *-1;
其他提示
我推荐PHP的 abs()
-功能 如果您想确保自己一直在处理一个正数:
$bal = abs($bal);
按照你 var_dump
输出,字符串从一个空间开始。用这个:
$bal = intval(trim($balance));
$bal = abs($bal);
$balance="-150";
$bal = $balance*1;
echo $bal;
给出-150
完成倍数后,您的程序如何使用$ bal?以下PHP脚本按照我的笔记本电脑的预期工作:
<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>
输出为“ 1150”,因为我没有打扰线路。您可以发布更多代码吗
我认为您可以使用函数intval()来简化计算,该函数返回任何变量的整数值。如果您有PHP手册,请浏览功能说明。
不隶属于 StackOverflow