PHP: переменная INT, но не может выполнять расчет

StackOverflow https://stackoverflow.com/questions/3958909

  •  08-10-2019
  •  | 
  •  

Вопрос

$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);
$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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top