$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)正在返回: string(110)“ -399.6000"
编辑2 我使用XML Parser将变量分配给数组 - 请参阅下面的答案。
答案 0 :(得分:3)
如果您想确保始终处理正数,我建议使用PHP abs()
-function:
$bal = abs($bal);
答案 1 :(得分:2)
根据您的var_dump
输出,您的字符串以空格开头。使用此:
$bal = intval(trim($balance));
答案 2 :(得分:1)
问题在于我使用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;
答案 3 :(得分:0)
答案 4 :(得分:0)
$bal = abs($bal);
答案 5 :(得分:0)
$balance="-150";
$bal = $balance*1;
echo $bal;
给出-150
答案 6 :(得分:0)
我认为你可以使用函数intval()来简化计算,它返回任何变量的整数值。如果您有php手册,请查看功能说明。
答案 7 :(得分:0)
你做多次后你的节目用$ bal做什么?以下PHP脚本在我的笔记本电脑上按预期工作:
<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>
输出为“1150”,因为我没有打扰换行符。你可以发布更多的代码