Foros del Web » Programando para Internet » PHP »

Problema pasando de String a Float

Estas en el tema de Problema pasando de String a Float en el foro de PHP en Foros del Web. Tengo una duda Tengo un catalogo de productos al que le quiero agregar el precio en dolares de cada producto. Código: <?php $url="no me deja ...
  #1 (permalink)  
Antiguo 26/03/2009, 12:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 1
Problema pasando de String a Float

Tengo una duda
Tengo un catalogo de productos al que le quiero agregar el precio en dolares de cada producto.
Código:
<?php
$url="no me deja poner el html por el tema de spam.xml";
$xmlstring=file_get_contents($url);
$xmlDoc= simplexml_load_string($xmlstring);

$compra =$xmlDoc->VALORCOMPRA;

$venta = $xmlDoc->VALORVENTA;;



?>
Utilizo ese codigo para obtener el valor del precio del dolar diario. El problema surge que cuando quiero realizar operaciones matematicas ( division, multiplicacion) con el valor de $venta, me toma solo el primer numero (por ej : 3) cuando lo que yo necesito es que me tome el valor con los decimales (por ej : 3.71). Ya he intentato pasarlo a double, pero sucede lo mismo, lo convierte en 3, y no en 3.71 como deberia.
Muchas gracias por la ayuda
  #2 (permalink)  
Antiguo 26/03/2009, 13:02
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Problema pasando de String a Float

Al parecer el valor ya vale 3 antes de recuperarlo, por eso aunque lo cambies a double no pasa nada.
¿Como insertas ese valor?
En PHP puedes hacer calculos directamente sin necesidad de convertir las variables, PHP se encarga de darse cuenta que tipo de variable es (int, double, string, etc).
  #3 (permalink)  
Antiguo 26/03/2009, 13:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema pasando de String a Float

Mira, cuando yo pongo
Código:
echo $venta
me imprime 3.71.

Pero al querer hacer esto
Código:
23/$venta
Me devuelve 7.67 ( que seria 23/3)
y no 6.19 ( que seria 23/3.71)

Ahi surge el problema
  #4 (permalink)  
Antiguo 26/03/2009, 13:15
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Problema pasando de String a Float

no sera algo asi lo que quieres hacer:
Código PHP:
echo "23"."/".$venta
por que de esta forma:
Código PHP:
<?php 
$venta
="3.71";
$division=(23/$venta);
echo 
$division;
?>
a mi me funciona perfecto, da de ressultado: 6.199460916442
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #5 (permalink)  
Antiguo 26/03/2009, 13:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema pasando de String a Float

Les pongo como lo tengo exactamente asi no quedan dudas.

Aca tomo el dato desde un xml
Código:
<?php$url="nopuedoponerlapaginaporspam.xml";
$xmlstring=file_get_contents($url);
$xmlDoc= simplexml_load_string($xmlstring);
$compra =$xmlDoc->VALORCOMPRA;
$venta = $xmlDoc->VALORVENTA;
?>

y aca les dejo donde esta la division que no me da correctamente
Código:
  <?php
  
  while($row=mysql_fetch_assoc($qry)){

  
  ?>
  <tr valign="middle" class="catalogo">
    <td><?php echo $row['producto'] ?></td>
    <td><?php echo $row['precio'] ?></td>
    <td><?php 
    $precioendolares = $row['precio']/$venta;
    echo $precioendolares;
  

   
    ?></td>

por ultimo les pongo el codigo donde aparece $3.70 en vez de $3
Código:
Valor de dolar = <?php echo $venta ?>
Gracias :)
  #6 (permalink)  
Antiguo 26/03/2009, 14:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Problema pasando de String a Float

Al parecer era la pagina xml de donde obtenia los datos.
Ahora la cambie, y puedo usar los numeros correctamente
Gracias por la ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:00.