Foros del Web » Programando para Internet » PHP »

problema usando un numero (string)

Estas en el tema de problema usando un numero (string) en el foro de PHP en Foros del Web. Tengo un problema que me ha tenido despierto toda la noche... recibo un string que es un numero (3 800) lo recibo en una variable ...
  #1 (permalink)  
Antiguo 08/08/2008, 04:50
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta problema usando un numero (string)

Tengo un problema que me ha tenido despierto toda la noche...
recibo un string que es un numero (3 800)
lo recibo en una variable que se llama $total_price
intento forzar la variable como numerica usando el clasico:
$precio = 0+$total_price
sin embargo, me devuelve 0... como decimos en chile: plop!

alguien me puede ayudar o dar una idea sobre esto, probe lo siguiente:
$precio = 1+$total_price
resultado: 1

el tema es que necesito utilizar luego el valor numerico para un par de calculos:
$iva = round(($precio*19)/100);
$neto = $precio - $iva;
por ahora todo me da 0...

si alguien me puede ayudar, gracias...

el codigo completo es:
Cita:
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

if($empty_cart) { ?>

<div style="margin: 0 auto;">
<?php if(!$vmMinicart) { ?>
<a href="http://virtuemart.net/" target="_blank">
<img src="<?php echo $mm_action_url ?>components/com_virtuemart/shop_image/ps_image/carrovacio.gif" alt="VirtueMart" width="80" border="0" /></a>
<br />
<?php }
echo $VM_LANG->_('PHPSHOP_EMPTY_CART') ?>
</div>
<?php }
else {
// Loop through each row and build the table
foreach( $minicart as $cart ) {

foreach( $cart as $attr => $val ) {
// Using this we make all the variables available in the template
// translated example: $this->set( 'product_name', $product_name );
$this->set( $attr, $val );
}
if(!$vmMinicart) { // Build Minicart
?>
<div style="float: left;">
<?php echo $cart['quantity'] ?>&nbsp;de&nbsp;<a href="<?php echo $cart['url'] ?>"><?php echo $cart['product_name'] ?></a>
</div>
<div style="float: right;">
<?php echo $cart['price'] ?>
</div>
<br style="clear: both;" />
<?php echo $cart['attributes'];
}
}
}
if(!$vmMinicart) { ?>
<hr style="clear: both;" />
<?php } ?>
<div style="float: left;" >
<?php echo $total_products ?>
</div>
<div style="float: right;">
<?php echo $total_price ?>
</div>
<div style="float: right;">
neto->>>
<?php

echo "<span style='color: red;'>$total_price</span><br />";
$precio = 0+$total_price;

echo "<span style='color: red;'>$precio</span><br />";
$iva = round(($precio*19)/100);
$neto = $precio - $iva;

echo "Precio Neto: $".number_format($neto,0,".",".")."<br />Impto. IVA: $".number_format($iva,0,".",".")."<br />Precio Total: $".number_format(($iva+$neto),0,".",".");
?>
</div>
<?php if (!$empty_cart && !$vmMinicart) { ?>
<br/><br style="clear:both" /><div align="center">
<?php echo $show_cart ?>
</div><br/>

<?php }
echo $saved_cart;
?>
__________________
Gigio

Última edición por gigio_wt; 08/08/2008 a las 05:43 Razón: agregar información a la consulta
  #2 (permalink)  
Antiguo 08/08/2008, 04:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema usando un numero (string)

puedes colocar el codigo que usas.... precisamente?

se debe mucho a como esta escrita la cadena.... si contiene algun simbolo que no sea numerico... ya no se considera numerica, y por lo tanto se toma como booleano....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/08/2008, 05:09
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: problema usando un numero (string)

ahi va la parte del codigo en donde asumo que tengo el problema...

Cita:
<?php
echo "<span style='color: red;'>$total_price</span><br />";
$precio = 0+$total_price; // aqui recupero el string
echo "<span style='color: red;'>$precio</span><br />";
$iva = round(($precio*19)/100);
$neto = $precio - $iva;
echo "Precio Neto: $".number_format($neto,0,".",".")."<br />Impto. IVA: $".number_format($iva,0,".",".")."<br />Precio Total: $".number_format(($iva+$neto),0,".",".");
?>
Esto queda impreso:
Cita:
3 800
0
Precio Neto: $0
Impto. IVA: $0
Precio Total: $0
Se supone que deberia dar asi:
Cita:
3 800
3.800
Precio Neto: $3.193
Impto. IVA: $607
Precio Total: $3.800
__________________
Gigio

Última edición por gigio_wt; 08/08/2008 a las 05:44 Razón: sumar info
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 11:42.