2015-02-27 4 views
0

Когда я выбираю из DB Oracle значение -0.10, но был выбран тип string и значение -1, почему?Как преобразовать строку в double?

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

ответ

0

echo number_format((float) $value, 2, '.', ''); - это то, что вы хотите?

(float) здесь не нужен, он просто конвертирует из строки в поплавок.

Для преобразования к поплавку вам просто нужно сделать бросок так:

+0

$ query_for_balance = «выберите balance_ $ от bis.client_balance_rate_plan где 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 = number_format ((float) $ balance_1 [0], 2, '.', ''); echo ($ balance); // result 0.00 –

0

Похоже, вы случайно используя переменную переменную:

$balance_2 = $$balance_1[0]; 
      ^^ here 

Это будет неожиданным результатам, вы попытаетесь получить первый элемент несуществующей переменной, и это, вероятно, приведет к false/-1.

Вы, вероятно, хотите:

// get the first element of the `balance_$` column 
$balance_2 = $balance_1[0]; 
+0

Я его преобразовал .. но результат 0.00 Это мой код $ query_for_balance = "select balance_ $ from bis.client_balance_rate_plan, где 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 = number_format ((float) $ balance_1 [0], 2, '.', ''); echo ($ balance); –

0

Для преобразования в поплавок, вам просто нужно использовать следующий код:

$balance_2 = floatval($balance_1[0]); 
Смежные вопросы