Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con los ceros decimales

Estas en el tema de problemas con los ceros decimales en el foro de PHP en Foros del Web. Hola amigos, necesito de vuestra experiencia, tengo una serie de números con decimales del tipo: 0.005 0.0050 y quiero que queden como 5 50 y ...
  #1 (permalink)  
Antiguo 28/06/2014, 05:37
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
problemas con los ceros decimales

Hola amigos, necesito de vuestra experiencia, tengo una serie de números con decimales del tipo:
0.005
0.0050


y quiero que queden como
5
50


y no logro dar con la instrucción correcta. Por favor, ¿podéis ayudarme?

Un millón de gracias

Juan Carlos
  #2 (permalink)  
Antiguo 28/06/2014, 06:14
 
Fecha de Ingreso: junio-2014
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: problemas con los ceros decimales

Podríamos desarrollar una función para ayudarte. A ver si me sale.
Desde luego si son todos con el mismo número de ceros la función es está muy simple:

Código PHP:
<?php
function quitaceros($number){
  
$sinceros $number*1000;
  return 
$sinceros;
}
#Se usaría así:
echo "Aquí tenemos el número ya sin los tres primeros ceros: ".quitaceros(0.0050);
?>
Si quisieras hacerlo con número con distinta cantidad de ceros yo lo haría así:
De hecho acabo de caer en la cuenta de que puedes hacerlo así. Pero no estoy muy seguro, prueba:

Código PHP:
<?php
$numero 
0.0000005874;
echo 
"Número entero: ".(int)$numero;
?>
#Hasta donde yo sé eso debe devolverte 5874.
Si no, pues tendrás que pensar una función que cuente los ceros y redondee dejando el número como deseas. Ahí solo cuentas con tu capacidad de programar y pensar algoritmos.
  #3 (permalink)  
Antiguo 28/06/2014, 06:58
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: problemas con los ceros decimales

Cita:
Iniciado por GoldWar Ver Mensaje
Podríamos desarrollar una función para ayudarte. A ver si me sale.
Desde luego si son todos con el mismo número de ceros la función es está muy simple:

Código PHP:
<?php
function quitaceros($number){
  
$sinceros $number*1000;
  return 
$sinceros;
}
#Se usaría así:
echo "Aquí tenemos el número ya sin los tres primeros ceros: ".quitaceros(0.0050);
?>
Si quisieras hacerlo con número con distinta cantidad de ceros yo lo haría así:
De hecho acabo de caer en la cuenta de que puedes hacerlo así. Pero no estoy muy seguro, prueba:

Código PHP:
<?php
$numero 
0.0000005874;
echo 
"Número entero: ".(int)$numero;
?>
#Hasta donde yo sé eso debe devolverte 5874.
Si no, pues tendrás que pensar una función que cuente los ceros y redondee dejando el número como deseas. Ahí solo cuentas con tu capacidad de programar y pensar algoritmos.
La segunda opcion que planteas devuelve la parte entera, que en este caso es 0.

Yo lo que haria es eliminar la coma simplemente, ya que los ceros a la izquierda antes de la coma son irrelevantes

Código PHP:
<?php
$numero 
0.0005874;
$numero=str_replace('.'''$numero);
echo 
$numero;
//devuelve 00005874
?>
  #4 (permalink)  
Antiguo 28/06/2014, 07:34
 
Fecha de Ingreso: junio-2014
Ubicación: Sevilla
Mensajes: 22
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: problemas con los ceros decimales

Cita:
Iniciado por xerifandtomas Ver Mensaje
La segunda opcion que planteas devuelve la parte entera, que en este caso es 0.

Yo lo que haria es eliminar la coma simplemente, ya que los ceros a la izquierda antes de la coma son irrelevantes

Código PHP:
<?php
$numero 
0.0005874;
$numero=str_replace('.'''$numero);
echo 
$numero;
//devuelve 00005874
?>
Tienes toda la razón. Tu respuesta es la correcta.
  #5 (permalink)  
Antiguo 28/06/2014, 08:13
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: problemas con los ceros decimales

Código PHP:
Ver original
  1. <?php
  2. $num = '0.0050';
  3.  
  4. echo $num = preg_replace("/0.[0]{0,}([^0])/", "$1",$num);  // 50
__________________
Salu2!
  #6 (permalink)  
Antiguo 28/06/2014, 11:59
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: problemas con los ceros decimales

Muchas gracias a todos, que rápido habéis contestado.

Es realmente inteligente lo de quitar la coma, no se me había ocurrido, y si se quiere imprimir el dato, con multiplicarlo por 1 nos quitamos los ceros inútiles, lo tendré en cuenta.
Por otro lado, me ha parecido muy útil el preg_replace, aunque me gustaría saber como funcionan sus parámetros.

He probado ambos sistemas y he visto que debo tener algún error en las formulas de mis cálculos, pero eso es otro tema. Os estoy muy agradecido por la ayuda. Gracias y quedo a vuestra disposición.

JC

Etiquetas: expresiones, matematicas
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 17:51.