PHP: переменная INT, но не может выполнять расчет
Вопрос
$bal = (int)$balance;
echo is_int($bal);
Баланс $ из файла_гет_Contents ($ Webservice);
Я использую (int) для преобразования строки в целое число. IS_INT возвращает 1 для true в качестве проверки.
Поскольку значение $ BAL всегда отрицательно, я делаю следующие расчеты, чтобы сделать это положительным:
$bal = $bal * -1;
Когда я делаю это, ценность становится 0, даже если BAL BAL может быть -150 ранее.
Редактировать 1.var_dump ($ Balance) возвращается: строка (110) "-399.6000"
Редактировать 2 Я использовал XML Parser для назначения переменной для массива - см. Мой ответ ниже.
Решение 3
Вопрос в том, что я использовал File_get_Contents, чтобы взаимодействовать с методом получения веб-службы.
Это возвращало данные заголовка XML, которую я упускаю из виду при назначении переменной.
Чтобы очистить XML, чтобы оставить меня только с той ценностью, которую я хотел, я использовал PHP XML_Parser, который сохранил файл_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 = $bal * (-1);
или использовать ABS () Если вы хотите, чтобы это было всегда положительным:
$bal = abs($bal);
$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.