Когда я выбираю из DB Oracle значение -0.10
но была выбрана строка типа и значение -1
, почему?
$query_for_balance = "select balance_$ from bis.client_balance_rate_plan where msisdn=$gett";
$per_for_balance = oci_parse($conn, $query_for_balance);
oci_execute($per_for_balance);
oci_fetch_all($per_for_balance, $arr_for_balance);
$balance_1 = $arr_for_balance['BALANCE_$'];
$balance_2 =$$balance_1[0];
echo($balance_2);
echo number_format((float) $value, 2, '.', '');
что вы хотите?
(float) здесь не требуется, он просто конвертируется из строки в float.
Чтобы преобразовать в поплавок, вам просто нужно сделать бросок следующим образом:
$valueString = '-0.10';
$valueFloat = (float) $valueString;
Чтобы конвертировать в float, вам просто нужно использовать следующий код:
$balance_2 = floatval($balance_1[0]);
Похоже, вы случайно используете переменную переменную:
$balance_2 = $$balance_1[0];
^^ here
Это приведет к неожиданным результатам, поскольку вы попытаетесь получить первый элемент несуществующей переменной, и это, вероятно, приведет к false
/-1
.
Вы, вероятно, хотите:
// get the first element of the 'balance_$' column
$balance_2 = $balance_1[0];