Pregunta

$bal = (int)$balance;
echo is_int($bal);

$ balance es de un file_get_contents ($ servicio web);

Estoy usando (int) para convertir una cadena a entero. retornos is_int 1 para cierto como verificación.

Debido a que el valor de $ bal es siempre negativo, yo el siguiente cálculo para que sea un positivo:

$bal = $bal * -1;

Cuando hago esto, se convierte en el valor 0 a pesar de que puede ser bal $ -150 anteriormente.

EDIT 1 var_dump ($ equilibrio) es devolver: string (110) " -399.6000"

EDIT 2 Me han utilizado Analizador XML a la variable de asignación de gama -. Ver mi respuesta a continuación

¿Fue útil?

Solución 3

El problema es que yo estaba usando file_get_contents para interactuar con un método GET para un servicio web.

Esta regresaba datos de cabecera XML, que pasé por alto cuando se asigna a una variable.

Para limpiar el XML para dejarme con sólo el valor que quería, he utilizado la xml_parser PHP que almacena file_get_contents en una matriz y me permitió asignar el valor de la matriz a un entero.

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

Otros consejos

Te recomiendo de PHP abs() funciones si usted quiere asegurarse de que siempre se trata de un número positivo:

$bal = abs($bal);

Según su salida var_dump, la cadena comienza con un espacio. Utilice la siguiente:

$bal = intval(trim($balance));

a prueba este si desea revertir el signo:

$bal = $bal * (-1);

abs () si usted quiere que sea siempre positivo:

$bal = abs($bal);
$balance="-150";
$bal = $balance*1;
echo $bal;

da -150

¿Cuál es su programa haciendo con $ bal después de hacer la multiplicación? La siguiente secuencia de comandos PHP funcionaba como esperaba en mi portátil:

<?php
$balance = "-150";
$bal = (int)$balance;
echo is_int($bal);
$bal = $bal * -1;
echo $bal;
?>

La salida es "1150" porque no me molesté con saltos de línea. Se puede publicar más de su código

creo que se puede hacer sus cálculos fácil mediante el uso de la función de intval (), que devuelve el valor entero de cualquier variable. Ir a través de la descripción de la función si tiene un manual de php.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top